Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re^2: Production level script template

by del (Pilgrim)
on Sep 08, 2005 at 19:10 UTC ( [id://490292]=note: print w/replies, xml ) Need Help??


in reply to Re: Production level script template
in thread Production level script template

I saw the idea for a time hash somewhere long ago. I keep this snippet on our work wiki site so I don't forget. It could be cleaned, but is useful (one variable to hold the time data.)
sub h_localtime() { my %time; my @time = localtime(time); my $iter = 0; my @iter = qw/sec min hour mday mon year wday yday isdst/; foreach (@iter) { $time{$_} = $time[$iter]; $iter++; } $time{mon}++; # make month 1..12 instead of 0..11 $time{year}+=1900; # make year absolute instead of (year-1900) $time{wday}++; # make week day 1..7 instead of 0..6 return %time; }
The programmer can then do this:
my %t = h_localtime;
printf "%d %d %d\n", @t{qw/mday mon year/};
I don't know that it's a significant benefit in the parent example, but I like it.

Replies are listed 'Best First'.
Re^3: Production level script template
by Tanktalus (Canon) on Sep 08, 2005 at 19:21 UTC

    This just looks like a quick-n-dirty version of Time::localtime, except that it makes mon and year a useful value, and modifies wday (which is of value only if you think that wday numbers have a meaning outside of an array index).

    The only other change I'd suggest is to check your context:

    return wantarray ? %time : \%time;
    I find being able to get the data in the format I want a very useful feature of perl. Especially since the speed difference is usually (but probably not always) in the ref's favour, while the readability of your example usage is definitely a point in favour of having the list return.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://490292]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others exploiting the Monastery: (5)
As of 2024-04-25 08:59 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found