> > This may work for you: > > > > #!/usr/bin/perl > > use warnings; > > use strict; > > use Fcntl ':seek'; > > > > @ARGV = 'somefile.csv'; > > $^I = '.back'; > > > > my @headers = map 1, split /,/, <>, -1; > > my @keep = ( undef ) x @headers; > > > > while ( <> ) { > > chomp; > > my @fields = split /,/, $_, -1; > > for my $i ( 0 .. $#fields ) { > > $keep[ $i ] = $i if $fields[ $i ] ne '0.0e0'; > > } > > last if @headers == grep defined, @keep; > > > > That would probably be more efficient as: > > exit 0 if @headers == grep defined, @keep; > > > > > > } > > > > @keep = grep defined, @keep; > > > > seek ARGV, 0, SEEK_SET or die "Cannot seek on '$ARGV' $!"; > > > > while ( <> ) { > > chomp; > > print join( ',', ( split /,/, $_, -1 )[ @keep ] ), "\n"; > > } > > > > __END__ > >
I tried the original code above and received the following error: seek() on closed filehandle ARGV at filename.pl line 24, <> line 52. Cannot seek osn 'filename2.csv' Bad file descriptor at filename.pl line 24, <> line 52 Since the file has 32 lines I was confused by the reference to 'line 52', so I deleted the empty line below _END_ and then repeated the command: perl filename.pl Nothing happened except that the cursor in the command terminal moved to the next line and remained, flashing without the [...] prefix. I pressed crtl c and looked at the file using mc. The result was that my csv file was totally emptied of content, i.e. became an empty file. So I went to search for the text::csv module. I tried to check if this was installed, with the resulting command terminal output: perl -MText::CSV e -1 Can't open perl script "e": No such file or directory $ perl -e "print qq(@INC)" /usr/lib/perl5/5.8.8/i386-linux /usr/lib/perl5/5.8.8 /usr/lib/perl5/site_perl/5.8.8/i386-linux /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl . $ perl -MText::CSV_XS e -1 Can't open perl script "e": No such file or directory So now I have no idea how to even check whether the module is already installed. Next I tried to see if there is any documentation: below is my command terminal output: ls /usr/share/doc/perl perl-AppConfig/ perl-IO-Socket-INET6/ perl-Archive-Cpio/ perl-IO-Socket-SSL/ perl-Archive-Tar/ perl-IO-Tty/ perl-Authen-SASL/ perl-IO-Zlib/ perl-Cairo/ perl-IP-Country-2.23/ perl-CGI-3.29/ perl-Libconf/ perl-Class-Singleton/ perl-libwww-perl/ perl-Compress-Raw-Zlib/ perl-Locale-gettext/ perl-Compress-Zlib/ perl-Mail-SPF/ perl-Config-IniFiles/ perl-Mail-SPF-Query/ perl-Crypt-SSLeay/ perl-MailTools/ perl-Curses/ perl-MDK-Common/ perl-Curses-UI/ perl-MDV-Distribconf/ perl-DateTime/ perl-MDV-Packdrakeng/ perl-DateTime-Locale/ perl-MIME-Lite/ perl-DateTime-TimeZone/ perl-Net-CIDR-Lite/ perl-DBD-mysql/ perl-Net-DBus/ perl-DB_File/ perl-Net-DNS/ perl-DBI/ perl-Net-Ident/ perl-Digest-HMAC/ perl-Net-IP/ perl-Digest-SHA1-2.11/ perl-Net-Jabber-2.0/ perl-Encode-Detect/ perl-Net_SSLeay.pm/ perl-Error/ perl-Net-Telnet/ perl-Expect/ perl-Net-XMPP/ perl-File-BaseDir/ perl-Params-Validate/ perl-File-DesktopEntry/ perl-RPM4/ perl-File-FnMatch-0.02/ perl-SOAP-Lite/ perl-File-MimeInfo/ perl-Socket6/ perl-Glib/ perl-String-CRC32/ perl-Gnome2-Print/ perl-String-ShellQuote/ perl-Gnome2-Vte/ perl-SVN/ perl-Gtk2/ perl-Sys-Hostname-Long/ perl-Gtk2-Html2/ perl-Term-ReadKey/ perl-Gtk2-NotificationBubble/ perl-TimeDate/ perl-Gtk2-SourceView-1.000/ perl-URI/ perl-Gtk2-TrayIcon/ perl-URPM/ perl-HTML-Parser/ perl-version/ perl-HTML-Tagset/ perl-XML-Parser/ perl-IO-Compress-Base/ perl-XML-Stream-1.22/ perl-IO-Compress-Zlib/ perl-Youri-Package-RPM-Updater/ No idea what this all means! I thought I would try and learn word by word, so trying to find out what 'fcntl' means; no idea where to start??? Totally bewildered! Yours, > > > John > -- > Perl isn't a toolbox, but a small machine shop where you > can special-order certain sorts of tools at low cost and > in short order. -- Larry Wall > > -- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > http://learn.perl.org/ > > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/