Scalar::Util

Scalar::Util is a selection of general-utility scalar subroutines.
Download

Scalar::Util Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Graham Barr
  • Publisher web site:
  • http://search.cpan.org/~gbarr/

Scalar::Util Tags


Scalar::Util Description

Scalar::Util is a selection of general-utility scalar subroutines. Scalar::Util is a selection of general-utility scalar subroutines.SYNOPSIS use Scalar::Util qw(blessed dualvar isweak readonly refaddr reftype tainted weaken isvstring looks_like_number set_prototype);Scalar::Util contains a selection of subroutines that people have expressed would be nice to have in the perl core, but the usage would not really be high enough to warrant the use of a keyword, and the size so small such that being individual extensions would be wasteful.By default Scalar::Util does not export any subroutines. The subroutines defined areblessed EXPRIf EXPR evaluates to a blessed reference the name of the package that it is blessed into is returned. Otherwise undef is returned. $scalar = "foo"; $class = blessed $scalar; # undef $ref = []; $class = blessed $ref; # undef $obj = bless [], "Foo"; $class = blessed $obj; # "Foo"dualvar NUM, STRINGReturns a scalar that has the value NUM in a numeric context and the value STRING in a string context. $foo = dualvar 10, "Hello"; $num = $foo + 2; # 12 $str = $foo . " world"; # Hello worldisvstring EXPRIf EXPR is a scalar which was coded as a vstring the result is true. $vs = v49.46.48; $fmt = isvstring($vs) ? "%vd" : "%s"; #true printf($fmt,$vs);isweak EXPRIf EXPR is a scalar which is a weak reference the result is true. $ref = $foo; $weak = isweak($ref); # false weaken($ref); $weak = isweak($ref); # trueNOTE: Copying a weak reference creates a normal, strong, reference. $copy = $ref; $weak = isweak($ref); # falselooks_like_number EXPRReturns true if perl thinks EXPR is a number. See "looks_like_number" in perlapi.openhandle FHReturns FH if FH may be used as a filehandle and is open, or FH is a tied handle. Otherwise undef is returned. $fh = openhandle(*STDIN); # *STDIN $fh = openhandle(*STDIN); # *STDIN $fh = openhandle(*NOTOPEN); # undef $fh = openhandle("scalar"); # undefreadonly SCALARReturns true if SCALAR is readonly. sub foo { readonly($_) } $readonly = foo($bar); # false $readonly = foo(0); # truerefaddr EXPRIf EXPR evaluates to a reference the internal memory address of the referenced value is returned. Otherwise undef is returned. $addr = refaddr "string"; # undef $addr = refaddr $var; # eg 12345678 $addr = refaddr []; # eg 23456784 $obj = bless {}, "Foo"; $addr = refaddr $obj; # eg 88123488reftype EXPRIf EXPR evaluates to a reference the type of the variable referenced is returned. Otherwise undef is returned. $type = reftype "string"; # undef $type = reftype $var; # SCALAR $type = reftype []; # ARRAY $obj = bless {}, "Foo"; $type = reftype $obj; # HASHset_prototype CODEREF, PROTOTYPESets the prototype of the given function, or deletes it if PROTOTYPE is undef. Returns the CODEREF. set_prototype &foo, '$$';tainted EXPRReturn true if the result of EXPR is tainted $taint = tainted("constant"); # false $taint = tainted($ENV{PWD}); # true if running under -Tweaken REFREF will be turned into a weak reference. This means that it will not hold a reference count on the object it references. Also when the reference count on that object reaches zero, REF will be set to undef.This is useful for keeping copies of references , but you don't want to prevent the object being DESTROY-ed at its usual time. { my $var; $ref = $var; weaken($ref); # Make $ref a weak reference } # $ref is now undefNote that if you take a copy of a scalar with a weakened reference, the copy will be a strong reference. my $var; my $foo = $var; weaken($foo); # Make $foo a weak reference my $bar = $foo; # $bar is now a strong referenceThis may be less obvious in other situations, such as grep(), for instance when grepping through a list of weakened references to objects that may have been destroyed already: @object = grep { defined } @object;This will indeed remove all references to destroyed objects, but the remaining references to objects will be strong, causing the remaining objects to never be destroyed because there is now always a strong reference to them in the @object array.Requirements:· Perl Requirements: · Perl


Scalar::Util Related Software