Wednesday, December 29, 2010

Add Custom Header to scripts using vim



1. Create a template header: cat ~/.vim_header.pl

:insert
#
# $Id: $
#
# Copyright (c) 2011 Parag Kalra
# All rights reserved.
#
## @script
##
## @summary
##
## @description
##
## @usage
##
## @synopsis
##
## @param
##
## @keywords
##
## @status review
##
## @author
##
## @creation-date
##
## @last-modified
##
## @burts
##
## see-also
.

:insert should be present on first line and . should be present on last line

2. Add following lines to ~/.vimrc

autocmd bufnewfile *.pl so ~/.vim_header.pl
autocmd bufnewfile *.pl exe "1," . 30 . "g/@script.*/s//@script " .expand("%")
autocmd bufnewfile *.pl exe "1," . 30 . "g/@creation-date/s//@creation-date " .strftime("%d-%m-%Y")
autocmd Bufwritepre,filewritepre *.pl execute "normal ma"
autocmd Bufwritepre,filewritepre *.pl exe "1," . 30 . "g/last-modified/s/last-modified .*/last-modified " .strftime("%c")
autocmd bufwritepost,filewritepost *.pl execute "normal `a"

3. Now create a new file having .pl extension and see the magic.

Tuesday, December 14, 2010

Locking Hashes - How to Lock Hashes in Perl

One drawback of hashes is that their keys are barewords which offer little typo protection (especially compared to the function and variable name protection offered by the strict pragma). The core module Hash::Util provides mechanisms to restrict the modification of a hash or the keys allowed in the hash.

For examples have a look at my sample scripts here.

Monday, December 13, 2010

How to find if a Perl module is installed on the System

Quick and Dirty way to find if a Perl module is installed on the System:

perl -MModule_Name -e 1



Monday, January 18, 2010

How to break from if - else in Perl

One of the ways to break from if - else in Perl is to use goto

if ($num =~ /^\d+$/){
if($num == 13){
goto ENDOFIF;
}
} else {
print "Number not found.\n";
ENDOFIF:
}

So if the number is 13 then it will break from the if and place the control right at the end of outer if.

Sunday, January 10, 2010

How to calculate the time of execution of a Perl script

Just add the following line any where in your Perl script and it will print its time of execution right at the end:

# This calculates the time of execution of the Perl script.
END {warn "\nTime of execution - ", time - $^T, " second(s)\n"}