Additionally, the simplistic code generally runs faster than the "clever" methods.
That said, have fun with abusing the language to satisfy curiosity :)
I recently wrote this as an experiment in getting localtime in yyyy-mm-dd format without declaring any local variables, and satifying strict.
I'll break it into components to make it easier to digest.printf "%04s-%02s-%02s\n", map { @$a ? $_ + shift @$a : $_} (localtime +,$a=[1900,1])[5,4,3];
Create a list that contains the date tokens provided by localtime, and also contains the newly initialized $a. $a does not need to be declared, as $a and $b are exempted from strict due to their use in sort.(localtime,$a=[1900,1])
Take the above generated list, and extract indexes 5,4,3 (year,month,mday).(localtime,$a=[1900,1])[5,4,3]
Iterate over the list that was generated in the previous step. For each entry check if there are any values left in @$a. If yes, add the current value to the next value in @$a, and shift that item from the list.map { @$a ? $_ + shift @$a : $_ } (localtime,$a=[1900,1])[5,4,3];
In effect $a is a list of modifiers.
In reply to Re: list slice
by imp
in thread list slice
by eXile
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |