Linux/Unix shell scripting vs Perl

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 !";
}

No, you'll have to translate it to shell, like

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.

Hello mario,

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.

Hope that helps,
gaurav.

Thanks, all
But it's true that Perl available on any *nix box, right ?

Tx
M

hi.

All I want to say is that if perl is not available , then its surely not one of those nix box.

cheers,
Gaurav.

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!!!

Another problem is "perl is available" doesn't always mean "the perl modules I require are available". you're not using any modules, though.

If the performance or memory requirements are at all important, perl is a bit of a hog.