Hi,

V.Ramkumar <[EMAIL PROTECTED]> asked:
> My input xml file has,
> <citspn>246</citspn><delim>&ndash;</delim><citepn>52</citepn>
> 
> I have to replace,
> <citspn>246</citspn><delim>&ndash;</delim><citepn>252</citepn>
> 
> Similarly,
> 
> 100-5         100-105
> 198-10        198-210.
> 
> If anybody have logic for the above, please suggest.

Hope this helps:

#!/usr/bin/perl -w

$| = 1;

use strict;

sub correct_range {
  my @args = @_; # nasty side effects if you map @_!
  my( $from, $to ) = map { $_ = reverse $_ } @args;

  substr( $from, 0, length $to ) = $to;

  return reverse( $from );
}


while( my $line = <DATA> ){
  my( $from, $to ) = split /\s+/, $line;
  print "In: $from -- $to\n";
  $to = correct_range( $from, $to );
  print "Out: $from -- $to\n\n";

}

__DATA__
1 17
201 2
123 45
199 201
999 1002

HTH,
Thomas

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to