Re: Newbie Perl Question
- From: "Paul Lalli" <mritty@xxxxxxxxx>
- Date: 17 Jul 2006 11:15:27 -0700
Rod Burgess wrote:
I am new to the Perl world and am trying to learn it. A coworker tells me
that Perl will not work for what I am trying to do however, I think Perl
would be a great tool to use and I feel this coworker is wrong.
I have a file that contains several lines all as below:
DR03555{tab} 45600062888{tab} 00008FLAT WASHER
DR03555{tab} 228765329{tab} 00001GASKET
The meaning of the file is
DR03555 = order number
45600062888 = part number
00008 = quantity
FLAT WASHER = Description
The lines all begin with the prefex DR I would like to read this file and
produce the following output:
45600062888;8;FLAT WASHER
228765329;1;GASKET
basiclly I need a file that lists the following: Part#;Quantity;Description
Is this possible with Perl?
Yes, it certainly is. Your coworker is either wrong or obtuse (or
both). Simply read the file in, split each line on the tab, match the
quantity out of the last field, convert the quantity to numeric format,
and print the fields you care about back out, joined by the semi colon.
You should read, at least, the following documentation:
perldoc -f readline
perldoc perlsyn
perldoc -f split
perldoc -f join
perldoc perlre
But, as I'm feeling generous today (and bored), here is a sample script
to get you started:
#!/usr/bin/perl
use strict;
use warnings;
while (<DATA>) {
chomp;
my ($order, $part, $third_field) = split /\t/;
my ($quant, $desc) = ($third_field =~ /^(\d+)(.*)$/);
$quant = sprintf ("%d", $quant);
print join(";", $part, $quant, $desc), "\n";
}
__DATA__
DR03555 45600062888 00008FLAT WASHER
DR03555 228765329 00001GASKET
(be careful with the formatting of the __DATA__ section - they're tabs
in my editor, but copy and pasting to this post may have mangled them)
Paul Lalli
.
- References:
- Newbie Perl Question
- From: Rod Burgess
- Newbie Perl Question
- Prev by Date: Re: Newbie Perl Question
- Next by Date: Re: Newbie Perl Question
- Previous by thread: Newbie Perl Question
- Next by thread: Re: Newbie Perl Question
- Index(es):
Relevant Pages
|
|