On Jun 28, 12:00 pm, [EMAIL PROTECTED] (Ved) wrote: > Now I have to print a single line at say line number 20 in each of 150 > number of kat.s file.
Hey, another chance to show off my favorite Perl module, IO::All. > Situation is bit complex (atleast for a beginer like me). Actually it is so simple (with IO::All) that you're gonna think I'm pulling your leg... #!/usr/bin/perl use strict; use warnings; use IO::All; my $dir = '/tmp/clpm'; #root directory of data my $line = 19; #print line 20 (first line is line zero) my $file = 'kat.s'; #match this filename map {print "@$_[$line]\n"} io($dir)->filter(sub{$_->filename eq $file})->all_files(0); __END__ That's it. Really. IO::All is a proxy to a bunch of I/O modules. In this case, it is doing two things: io($dir)->filter(sub{$_->filename eq $file})->all_files(0); This uses File::Find to recurse all directories below $dir and find all files named 'kat.s'. map {print "@$_[$line]\n"} This uses Tie::File to treat the file like an array; I print the line I want (line #20, which is array element #19). IO::All provides all of your basic error-handling services, so no need to futz around with that. Cheers! -- The best way to get a good answer is to ask a good question. David Filmer (http://DavidFilmer.com) -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/