Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
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?
[tye]: probably something in the init subsystem that does the mounting that you could disable and reboot.
davido needs to close laptop to board flight home from yapc.
[davido]: I'll look into it in a few hours probably.
[davido]: when i do get to that point I think I'll do it in a vm snapshot just in case. :)
[oiskuu]: tye, you were right: loginuid/sessionid are part of task struct if compiled with AUDITSYSCALL. I have some doubts if you should actually depend on that feature.
[Corion]: oiskuu: Depends on what you want to do with that information
[tye]: I'm not depending on that feature. But I could in this environment. I'm using getlogin(). shrug
[Corion]: For benign logging (which user started this DB instance), it's OK
[tye]: We use auditd for security monitoring. So we can rely on auditing being enabled. I'm not sure who would want to not be able to audit. Maybe some VM inside another system with audit?

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2017-06-23 20:12 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    How many monitors do you use while coding?















    Results (555 votes). Check out past polls.