in reply to Re^2: displaying html file in the browser using perl
in thread displaying html file in the browser using perl
You're testing $1, but your error message contains $_[0] as the filename. Which one is it you want?
Let me suggest that you output the file name in your error message. If you're really intent on (re-)using $1, then you should also pass $1 to your subroutine read_file.
Personally, I wouldn't reuse $1 outside of the subroutine where it is set through a match:
my $includepath="somefolder/somefolder/"; $html =~ s/<!--#include file="([^"]+)"-->/&add_template($includepath.$ +1)/gexi; print $html; sub add_template{ my( $filename ) = @_; if(!-f $filename){ return "Could not include template '$filename' because: N +O FILE" }elsif(!-r $1){ return "Could not include template '$filename' because: N +O ACCESS TO FILE"; }else { return read_file($filename); } }
Also consider why you're testin the existence and readability yourself? Personally, I would let read_file fail and output the error message from it instead of doing manual error checking.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^4: displaying html file in the browser using perl
by tsdesai (Acolyte) on Dec 19, 2016 at 13:36 UTC | |
by Corion (Patriarch) on Dec 19, 2016 at 13:47 UTC | |
by tsdesai (Acolyte) on Dec 19, 2016 at 13:53 UTC |