Hi,
I have general question: i have good working Perl script with .pl extension, and now I have to migrate all to another Linux box, and I was told that I can use only shell scripting, so I'm not sure how different those two things are, will it work without any changes . Is there anything smart I can tell those Unix/Linux admins to convince them to use my old .pl.
I thought that Perl is kind of built in n each Unix/Linux box, another thing that this script will be fired by third party scheduler with currently works with with existing shell scripts, so maybe this can make difference.
Will appreciate any info, I'm knd of beginner.
Mario
My pl script pretty simple, something like below, do you think ksh will take it?
--------------------------------------
opendir(DIR, "$sdir");
@files1 = grep(/^$name/,readdir(DIR)); # select files with $param name
@files2 = grep(/\.dat$/,@files1); # select files with .dat
closedir(DIR);
foreach $file (@files2) {
@ports= split(/_/, $file); # extract track
$port=@ports[2];
@eid=split(/\./, @ports[3]); # extract id#
$id=@eid[0];
copy("$sdir\$file","c:\:\\Perl\\$targetdir\\$file") or die "Copy failed: $sdir\\$file !";
}
FILES1=$(ls $DIR/$NAME*)
FILES2=$(ls $DIR/*.dat)
for FILE in $FILES2
do
PORT=$(echo "$FILE" | cut -d'_' -f3)
ID=$(echo "$FILE" | cut -d'_' -f4) | cut -d'.' -f1
# cp $SDIR/$FILE ??? || echo ""Copy failed: $sdir\\$file !"
# strange path !?
# copy("$sdir\$file","c:\:\\Perl\\$targetdir\\$file") or die "Copy failed: $sdir\\$file !";
done
Notes:
The indexes with the 'cut' command start with 1 (2=>3, 3=>4, 0=>1).
DIR, NAME, SDIR, TARGETDIR variables should have benn defined previously.
The path with c:\:\\Perl... seems me strange, looks a bit like dos but not unix.
Not complete but hope this helps.
This is an extremely easy script and easy to work out. you should convince them that perl is extremely portable and they can find it anywhere on this planet as long as the system runs of course.
Besides that, its easy to code, maintain, extremely faster than the ksh or bash or whatever shell they are using.
and the most important thing , the same thing ( a few lines of perl code) would have to be written.. hmm I cant imagine it now but many more lines of hazy ksh code... So perl makes the program shorter too.
Perl is available for any box that can run the GNU compiler suite. That does not eliminate many systems. Available does not mean installed though. IF there is some odd corporate standard that excludes it, you may be 'stuck'! The only place I have seen that PERL did not run that looked like *nix was on a mainframe. They did nor install PERL, and would not use SHELL scripts, because all system work was done REXX/R by mainframe engineers. Made me crazy, but taught me a healthy respect for REXX and mainframe engineers!!!