in reply to Re^3: read an integer from a file
in thread read an integer from a file

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

Replies are listed 'Best First'.
Re^5: read an integer from a file
by Boldra (Curate) on Jun 16, 2010 at 08:21 UTC
    "it doesn't work" is a singularly useless phrase in IT.

    Nevertheless, I googled "squid perl redirect" and found the script I think you are using as a pattern and adapted it for what I think you are trying to do.

    #!/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.


    - Boldra
      #!/usr/bin/perl -- use strict; use warnings; use autodie; use 5.010; $| = 1; while (<>) { open my $fh, "<", "status.txt"; my $status = join "",<$fh>; close $fh; 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 } }