in reply to Re: Read file contents
in thread Read file contents

Allright. I have a file called tax.txt on C:\Users\rak\Desktop\tax.txt this is the code: #!/usr/local/bin/perl use strict; use File::Path; use File::Basename; print"enter the path\n"; my $ans=<STDIN>;#$ans=C:\Users\rak\Desktop\tax.txt chomp($ans); my $path= dirname($ans);#I dont have to use this I know.I am just checking here. my $file= basename($ans);#I dont have to use this I know. $ans=~ s/\\/\//gi;#All my file open statements worked well #with c:/bla/bla instead of c:\bla\bla; print $ans; #to make sure that I am replacing all "\" with "/"; open(FH,"<$ans") or die $!; @lines=<FH>; print "\n@lines-bla\n";#bla is to check the print statement:Just prints bla there,not printing file contents; Here is the output: enter the path C:\Users\rak\Desktop\tax.txt No such file or directory at C:\Users\rak\Desktop\cool.pl line 18, <STDIN> line 1. Where i am going wrong? tried without replacing \ with/ same error. I HAVE tax.txt EXISTING ON MY DESKTOP.

Replies are listed 'Best First'.
Re^3: Read file contents
by hilitai (Monk) on Jun 29, 2008 at 18:35 UTC
    When I try to run your code, I get the error message:
    Global symbol "@lines" requires explicit package name...
    What happens if you fix that problem?
Re^3: Read file contents
by psini (Deacon) on Jun 29, 2008 at 17:16 UTC

    Sorry, but your example is not clear. If you substitute all the "\" with "/" and then you print $ans, why I can't see any "/" in your output?

    Update: hilitai is right: that can't be the output of the script you posted, for it doesn't compile. I tried it adding "my" before @lines and it works AFAICT.

    sini@ordinalfabetix:~$ ./x.pl enter the path \home\sini\x.pl /home/sini/x.pl #!/usr/bin/perl # use strict; use File::Path; use File::Basename; print"enter the path\n"; my $ans=<STDIN>; #$ans=C:\Users\rak\Desktop\tax.txt chomp($ans); my $path= dirname($ans);#I dont have to use this I know.I am just che +cking here. my $file= basename($ans);#I dont have to use this I know. $ans=~ s/\\/\//gi;#All my file open statements worked well #with c:/b +la/bla instead of c:\bla\bla; print $ans; #to make sure that I am replacing all "\" with "/"; open(FH,"<$ans") or die $!; my @lines=<FH>; print "\n@lines-bla\n";#bla is to check the print statement:Just prin +ts bla there,not printing file contents; -bla sini@ordinalfabetix:~$

    Rule One: "Do not act incautiously when confronting a little bald wrinkly smiling man."