Search your unanswered perl queries
Google

Thursday, October 30, 2008

Get a date in yyyymmdd format

use POSIX;
my $today = POSIX::strftime('%Y%m%d', localtime);

How to take a hash slice.

If you want to assign some variables of a hash to an array. i.e you want to take some of the elements from hash based on there keys into a array here is a trick\

my %hash = (one => 'one', two => 'two', three => 'three');
my @array ;
@array = @{$hash}{'one','two'};

If you have a hashref and want to take the values of some keys into an array you can do the following.

my $hashref = {one => 'one', two => 'two', three => 'three'};
my @array ;
@array = @{%$hash}{'one','two'};

Getopt::Long :s option specifier

: s option of getopt::long come very much handy when one is looking for the following requirement

1) If a command line option is passed a paramter it is taken as a value for the given option

i.e perl program -option1 value1

$option1 will take value1.

2) If a command line option is not mentioned then variable remains undefined.

i.e perl program

$option1 will remain undef.

3) If a command line option is mentioned but paramter is not passed, then a empty string will be assigned to $option if :s is used and 0 if :i is used

i.e perl program -option1

$option will be q{}... an empty string.

Please take a look at http://search.cpan.org/dist/Getopt-Long/lib/Getopt/Long.pm for further information.