File Coverage

blib/lib/Hydrogen/Scalar.pm
Criterion Covered Total %
statement 31 43 72.0
branch 2 10 20.0
condition n/a
subroutine 10 13 76.9
pod 5 5 100.0
total 48 71 67.6


line stmt bran cond sub pod time code
1             # This file was autogenerated.
2 4     4   287632 use 5.008001;
  4         14  
3 4     4   22 use strict;
  4         13  
  4         128  
4 4     4   18 use warnings;
  4         9  
  4         257  
5 4     4   20 no warnings qw( void once );
  4         9  
  4         173  
6 4     4   498 use Hydrogen ();
  4         10  
  4         338  
7              
8             package Hydrogen::Scalar;
9              
10             our $AUTHORITY = 'cpan:TOBYINK';
11             our $VERSION = '0.021001';
12              
13             =head1 NAME
14              
15             Hydrogen::Scalar - a standard library for scalars
16              
17             =head1 VERSION
18              
19             This documentation is for Hydrogen::Scalar 0.021001,
20             which is based on Sub::HandlesVia::HandlerLibrary::Scalar 0.050005.
21              
22             =cut
23              
24             =head1 FUNCTIONS
25              
26             Each function expects a scalar as its first argument.
27              
28             =cut
29              
30 4         41 use Exporter::Shiny qw(
31             get
32             make_getter
33             make_setter
34             set
35             stringify
36 4     4   57 );
  4         8  
37              
38             =head2 C<< get( $scalar ) >>
39              
40             Gets the current value of the scalar.
41              
42             =cut
43              
44             sub get {
45 0     0 1 0 my $__REF__ = \$_[0];
46              
47             package Hydrogen::Scalar::__SANDBOX__;
48 0 0       0 @_ == 1
49             or Hydrogen::croak( "Wrong number of parameters for get; usage: "
50             . "Hydrogen::Scalar::get( \$scalar )" );
51 0         0 $$__REF__;
52             }
53              
54             =head2 C<< make_getter( $scalar ) >>
55              
56             Returns a getter coderef.
57              
58             =cut
59              
60             sub make_getter {
61 1     1 1 257821 my $__REF__ = \$_[0];
62              
63             package Hydrogen::Scalar::__SANDBOX__;
64 1 50       7 @_ == 1
65             or Hydrogen::croak( "Wrong number of parameters for make_getter; usage: "
66             . "Hydrogen::Scalar::make_getter( \$scalar )" );
67 1         4 my $s = $__REF__;
68 1     1   7 sub { unshift @_, $s; $$__REF__ }
  1         9  
69 1         7 }
70              
71             =head2 C<< make_setter( $scalar ) >>
72              
73             Returns a setter coderef.
74              
75             =cut
76              
77             sub make_setter {
78 1     1 1 3744 my $__REF__ = \$_[0];
79              
80             package Hydrogen::Scalar::__SANDBOX__;
81 1 50       5 @_ == 1
82             or Hydrogen::croak( "Wrong number of parameters for make_setter; usage: "
83             . "Hydrogen::Scalar::make_setter( \$scalar )" );
84 1         2 my $s = $__REF__;
85 1     1   4 sub { my $val = shift; unshift @_, $s; ( ${$__REF__} = $val ) }
  1         3  
  1         2  
  1         3  
86 1         6 }
87              
88             =head2 C<< set( $scalar, $value ) >>
89              
90             Sets the scalar to a new value.
91              
92             =cut
93              
94             sub set {
95 0     0 1   my $__REF__ = \$_[0];
96              
97             package Hydrogen::Scalar::__SANDBOX__;
98 0 0         @_ == 2
99             or Hydrogen::croak( "Wrong number of parameters for set; usage: "
100             . "Hydrogen::Scalar::set( \$scalar, \$value )" );
101 0           ( ${$__REF__} = $_[1] );
  0            
102             }
103              
104             =head2 C<< stringify( $scalar ) >>
105              
106             Gets the current value of the scalar, but as a string.
107              
108             =cut
109              
110             sub stringify {
111 0     0 1   my $__REF__ = \$_[0];
112              
113             package Hydrogen::Scalar::__SANDBOX__;
114 0 0         @_ == 1
115             or Hydrogen::croak( "Wrong number of parameters for stringify; usage: "
116             . "Hydrogen::Scalar::stringify( \$scalar )" );
117 0           do { my $shv_tmp = $$__REF__; sprintf q(%s), $shv_tmp; }
  0            
  0            
118             }
119              
120             1;
121              
122             =head1 EXPORT
123              
124             No functions are exported by this module by default. To import them all (this is usually a bad idea), use:
125              
126             use Hydrogen::Scalar -all;
127              
128             To import a particular function, use:
129              
130             use Hydrogen::Scalar 'make_setter';
131              
132             To rename functions:
133              
134             use Hydrogen::Scalar 'make_setter' => { -as => 'myfunc' };
135              
136             On Perl 5.37.2+ (or if L is installed) you can import lexically:
137              
138             use Hydrogen::Scalar -lexical, 'make_setter';
139              
140             See L for more hints on importing.
141              
142             =head1 BUGS
143              
144             Please report any bugs to
145             L.
146              
147             =head1 SEE ALSO
148              
149             L,
150             L,
151             L,
152             L.
153              
154             =head1 AUTHOR
155              
156             Toby Inkster Etobyink@cpan.orgE.
157              
158             =head1 COPYRIGHT AND LICENCE
159              
160             This software is copyright (c) 2022-2025 by Toby Inkster.
161              
162             This is free software; you can redistribute it and/or modify it under
163             the same terms as the Perl 5 programming language system itself.
164              
165             =head1 DISCLAIMER OF WARRANTIES
166              
167             THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED
168             WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
169             MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
170