Chris Hurt wrote:
> 
> Hi all;

Hello,

> Got a newbie question for you.  I have a number of exactly 10 digits
> (2001090701) and I want to be able to read it from a file, cut the first 8
> digits from the last two digits and put each into a variable (for comparison
> and addition).  I would do it in the korn shell like this:
> 
> NUM=`grep Serial FILE | awk '{print $1}'`
> TODAY=`date '+%Y%m%d'`
> FDAY=`echo $NUM | cut -c 1-8`
> typeset -Z2 INCR
> INCR=`echo $NUM | cut -c 9-10`
> if [ $FDAY -ne $TODAY ]; then
>         SNUM="${TODAY}01"
> else
>         let INCR="$INCR + 1"
>         SNUM="${TODAY}${INCR}"
> fi
> print "                 $SNUM   ;Serial" >> NEWFILE

my ( $num, $snum );

open FILE, $file or die "Cannot open $file: $!":
/Serial/ and $num = (split)[0] and last while <FILE>;
close FILE;

my @date = localtime;
my $today = sprintf '%04d%02d%02d', $date[5]+1900, $date[4]+1, $date[3];

my ( $fday, $incr ) = unpack 'a8 a2', $num;
if ( $fday == $today ) {
    $snum = "${today}01";
    }
else {
    $snum = sprintf '%s%02d', $today, ++$incr;
    }

open NEWFILE, ">> $newfile" or die "Cannot open $newfile: $!";
print "                 $snum   ;Serial"



John
-- 
use Perl;
program
fulfillment

-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to