a) are the -s and -l switches necessary?
They are in every script I write, unless the function of the script requires their removal to operate properly; which is a very rare occurrence.
#! perl -slw use strict; use Benchmark qw[ cmpthese ]; sub f1 { # ( [$:arg] ) use 5.007003; # perl v5.7.3; required for List::Util to be availab +le in CORE use List::Util qw/ first /; my $arg = first { defined && length } ( shift, 'default_value' ); $arg; } sub f2 { my $arg = defined $_[0] && length $_[0] ? shift : 'default'; $arg; } our $ITERS //= 1000; our @args = ( undef, '', 'fred', 1, 1.5 ) x $ITERS; cmpthese -1, { stupid => q[ f1( $_ ) for @args ], simple => q[ f2( $_ ) for @args ], } __END__ C:\test>junk0 -ITERS=10000 Rate stupid simple stupid 12.8/s -- -58% simple 30.2/s 136% --
In reply to Re^5: Assigning default values to function arguments which may be �empty�
by BrowserUk
in thread Assigning default values to function arguments which may be “empty”
by Wyrdweaver
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |