Well I'm not sure about squid, but you should break this into two parts:
- check you are getting the behaviour you expect WITHOUT squid,
- integrate with squid.
You might not get as much help with part 2 from Perlmonks as you would like, but you will get more help with part 1 if you're clear about what's going wrong.
Since you asked again in the chatterbox about "problem reading a file", I advise you again to look at IO::All. If you're lucky, you can install it just by typing "cpan IO::All". If it turns out to be a bit more complicated, it's definitely worth at least one whole week of effort to get cpan working properly. If you can't install modules from cpan, you are missing out on most of the power of Perl, and you may even find people here getting frustrated with you. The particulars of installing cpan modules vary from site to site, so if you have problems, it's a good idea to talk to other people using Perl at your location.
| [reply] |
Hi Bodra,
i have split my task into 2 situation as you suggest.
for case 1: without squid: i have test the script and it works. i make it print the result to the terminal after reading process.
case 2: i integrate it with squid, it works when i disable the code for reading the file. but when i enable the code to read the file, it doesn't work.
this script almost hit the target to do the URL redirection but there is something wrong at reading the file process. i'm new to perl. Hope u can help me in this. thanks
| [reply] |
#!/usr/bin/perl
use strict;
use warnings;
use IO::All;
use 5.010;
$| = 1;
while (<>) {
my $status = io('status.txt')->all;
my $url = ( split )[0];
if( not $status # almost same as if( $status == 0 )
and $url =~ /\Q123.1.34.107:8080\E/ ) {
say "301:http://123.1.34.107:8080/Web"
} else {
say $url
}
}
Try this outside of squid first. If it works on the command line, but with squid, it's probably permissions or the file path. Check the squid logs for more information.
| [reply] [d/l] |