Well I just don't know how to do it correctly. While I defined port, agent,...etc, I used a hash with predefined key names like port, agent, logfh, but I could find any method for @ARGV, like params, arguments or whatever, may be it sound stupid :) for pro guys, but this is my reason I thought that with my skills I can either pass it by default with new(), or I should use something that I don't know yet.
BTW my only guess was:
open ( LOGFILE, ">>", "/var/log/repeater.log");
my $proxy = HTTP::Proxy->new(
port => '38374',
agent => $ua,
logfh => <LOGFILE>,
@ARGV
);
Can I do such a thing ? | [reply] [d/l] |
| [reply] |
BTW, Eliya thank you very much for your help with previous problem, thanks to you it works as a charm.
| [reply] |
telnet 127.0.0.1 38374
Trying 127.0.0.1...
Can't use an undefined value as a symbol reference at HTTP/Proxy.pm li
+ne 765.
Can't use an undefined value as a symbol reference at HTTP/Proxy.pm li
+ne 765.
Connected to localhost.localdomain (127.0.0.1).
Escape character is '^]'.
Connection closed by foreign host.
[1]+ Exit 29 ./proxy1.pl
| [reply] [d/l] |
It's a little difficult to help without knowing what exactly you've done that results in the error. Or more generally, what exactly you want to achieve. From your initial description I gather you want to make a redirection in case a specific substring is found in the URL. But I don't yet understand how the "need to pass @ARGV" issue is related to that...
As for the "Can't use an undefined value as a symbol reference", the error happens when the module is trying to use logfh the first time (line 765) — which is because you've passed <LOGFILE> (presumably), instead of *LOGFILE, i.e. it should be
logfh => *LOGFILE,
<LOGFILE> reads lines from the file handle (which doesn't make sense here), while *LOGFILE refers to the file handle itself. In case you find the glob syntax (*...) curious, you can also use a lexical file handle
my $fname = "/var/log/repeater.log";
open my $logfh, ">>", $fname or die "couldn't open '$fname': $!";
...
logfh => $logfh,
| [reply] [d/l] [select] |