Hello all. This question pertains to PERL5.* I know that I can use a function output as an array easily, w/o needing temporary arrays I.E.:
foreach $line ($self->getAllLines() {... }
I want to be able to do the same with a sub that return hashes, but i can't get it to work. See tiny example below using perl -e:
However, using a variable to get the hash and then using keys on the variable, works:liord@analog4 267 > perl -e 'sub a { %a = ( 1 , "ho" ); return %a} pri +nt keys a(), "\n"; ' Type of arg 1 to keys must be hash (not subroutine entry) at -e line 1 +, near ")," Execution of -e aborted due to compilation errors.
liord@analog4 268 > perl -e 'sub a { %a = ( 1 , "ho" ); return %a} %t= + a() ; print keys %t , "\n"; ' 1
Is there a way to avoid defining %t, and make the code more compact?
In reply to Treating sub output as a hash by ISAI student
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |