Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: split and assign to arrayref in one go?

by radiantmatrix (Parson)
on Jun 16, 2008 at 15:58 UTC ( #692293=note: print w/replies, xml ) Need Help??


in reply to split and assign to arrayref in one go?

An alternative to moritz's solution, you could do this:

@{ $aref } = split(/\D+/,"1,2xxx4:17");

It says "store the result of the split into the array referenced by $aref". If $aref is undefined or an ArrayRef already, this works, even with strict and warnings.

$ perl -w -Mstrict -MData::Dumper -e 'my $x; @{$x} = split /\s/, "the +one true"; print Dumper($x)' $VAR1 = [ 'the', 'one', 'true' ];

If $aref is a different kind of reference, then you will get a fatal "Not an ARRAY reference".

$ perl -w -Mstrict -MData::Dumper -e 'my $x = {}; @{$x} = split /\s/, +"the one true"; print Dumper($x)' Not an ARRAY reference at -e line 1.
<radiant.matrix>
Ramblings and references
“A positive attitude may not solve all your problems, but it will annoy enough people to make it worth the effort.” Herm Albright
I haven't found a problem yet that can't be solved by a well-placed trebuchet

Replies are listed 'Best First'.
Re^2: split and assign to arrayref in one go?
by rovf (Priest) on Jun 16, 2008 at 16:13 UTC
    Autovivification if $aref hasn't been defined yet - this is also an elegant solution!!! I already went with moritz's idea, but will keep yours in mind for the next occasion.
    -- 
    Ronald Fischer <ynnor@mm.st>

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://692293]
help
Chatterbox?
[Eily]: or count the parentheses :)
[Discipulus]: stupid me! I had to stay at home and do not code with the flu..
[holli]: bacause it's a syntax error
[Discipulus]: yes sorry forget and forgive me
[Eily]: for what it's worth I didn't go for the brightest solution either
[Eily]: I tried print eval '2+1/3*(2+2/5))' or print $@
[Eily]: and therefore concluded that the eval did succeed because there was no printed error :P
[Eily]: stupid operator precedence :D

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (9)
As of 2017-10-24 10:21 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My fridge is mostly full of:

















    Results (287 votes). Check out past polls.

    Notices?