use constant
use constant BUFFER_SIZE => 4096;
use constant ONE_YEAR => 365.2425 * 24 * 60 * 60;
use constant PI => 4 * atan2 1, 1;
use constant DEBUGGING => 0;
use constant ORACLE => 'oracle@cs.indiana.edu';
use constant USERNAME => scalar getpwuid($<);
use constant USERINFO => getpwuid($<);
sub deg2rad { PI * $_[0] / 180 }
print "This line does nothing" unless DEBUGGING;
# references can be declared constant
use constant CHASH => { foo => 42 };
use constant CARRAY => [ 1,2,3,4 ];
use constant CPSEUDOHASH => [ { foo => 1}, 42 ];
use constant CCODE => sub { "bite $_[0]\n" };
print CHASH->{foo};
print CARRAY->[$i];
print CPSEUDOHASH->{foo};
print CCODE->("me");
print CHASH->[10]; # compile-time errorThis pragma declares the named symbol to be an immutable
constant[2] with the given scalar or list value. You must make a
separate declaration for each symbol. Values are evaluated in list
context. You may override this with scalar as we
did above.
Since these constants don't have a $ on the
front, you can't interpolate them directly into double-quotish
strings, although you may do so indirectly:
print "The value of PI is @{[ PI ]}.\n";Because list constants are returned as lists, not as arrays, you must subscript a list-valued constant using extra parentheses as you would any other list expression:
$homedir = USERINFO[7]; # WRONG $homedir = (USERINFO)[7]; # ok
Although using all capital letters for constants is recommended to help them stand out and to help avoid potential collisions with ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access