I'm not a perl programmer, so please help me to disable warning messages. I tried like commenting 'use strict' and 'use warning' in perl program. But it is not working.
All I want is to disable warning messages.
Please note its not actual ping program, But a perl wrapper for ping to display ping output in color (Cope).
Below is output:
Code:
$ ./ping google.com given is experimental at /usr/local/share/perl/5.20.2/App/Cope.pm line 255. when is experimental at /usr/local/share/perl/5.20.2/App/Cope.pm line 256. when is experimental at /usr/local/share/perl/5.20.2/App/Cope.pm line 259. when is experimental at /usr/local/share/perl/5.20.2/App/Cope.pm line 262. given is experimental at /usr/local/share/perl/5.20.2/App/Cope/Extra.pm line 119. when is experimental at /usr/local/share/perl/5.20.2/App/Cope/Extra.pm line 120. given is experimental at /usr/local/share/perl/5.20.2/App/Cope/Extra.pm line 159. when is experimental at /usr/local/share/perl/5.20.2/App/Cope/Extra.pm line 160. when is experimental at /usr/local/share/perl/5.20.2/App/Cope/Extra.pm line 161. PING google.com (173.194.36.4) 56(84) bytes of data. 64 bytes from bom04s01-in-f4.1e100.net (173.194.36.4): icmp_seq=1 ttl=57 time=67.8 ms 64 bytes from bom04s01-in-f4.1e100.net (173.194.36.4): icmp_seq=2 ttl=57 time=68.1 ms 64 bytes from bom04s01-in-f4.1e100.net (173.194.36.4): icmp_seq=3 ttl=57 time=66.6 ms 64 bytes from bom04s01-in-f4.1e100.net (173.194.36.4): icmp_seq=4 ttl=57 time=66.6 ms ^C --- google.com ping statistics --- 4 packets transmitted, 4 received, 0 packet loss, time 3004ms rtt min/avg/max/mdev = 66.687/67.353/68.155/0.743 ms
Works fine when error redirected to /dev/null
Code:
$ ./ping google.com 2>/dev/null PING google.com (173.194.36.1) 56(84) bytes of data. 64 bytes from bom04s01-in-f1.1e100.net (173.194.36.1): icmp_seq=1 ttl=57 time=68.4 ms 64 bytes from bom04s01-in-f1.1e100.net (173.194.36.1): icmp_seq=2 ttl=57 time=66.6 ms 64 bytes from bom04s01-in-f1.1e100.net (173.194.36.1): icmp_seq=3 ttl=57 time=66.4 ms ^C --- google.com ping statistics --- 3 packets transmitted, 3 received, 0 packet loss, time 2003ms rtt min/avg/max/mdev = 66.419/67.179/68.421/0.885 ms
Unfortunately, I cannot use output error redirection because all the perl programs are in PATH.
Actual ping perl program:
Code:
#!/usr/bin/env perl use App::Cope; use App::Cope::Extra qw[ping_time percent_b]; use Regexp::Common qw[net]; sub process { # header line qr{^PING (\S+)} => 'blue bold underline'; # ping replies line qr{time=([0-9.]+ ms)\b} => \&ping_time; mark qr{\($RE{net}{IPv4}\)} => 'blue'; line qr{(?:icmp_seq|ttl)=(\d+)} => 'bold'; line qr{^(?:\d+ bytes )?[Ff]rom ([^:\s]+)} => 'blue bold'; # final ping statistics line qr{(\d+% packet loss)} => \&{ percent_b 0, 1, 26 }; line qr{min/avg/(?:max/mdev|ewma/max)\s=\s ([0-9.]+)/ # minimum ([0-9.]+)/ # average ([0-9.]+)/ # maximum or moving average ([0-9.]+\sms) # mean deviation or maximum }x => ( \&ping_time ) x 4; } run( \&process, real_path, @ARGV );
Code:
$ head -n15 /usr/local/share/perl/5.20.2/App/Cope.pm #!/usr/bin/env perl package App::Cope; #use strict; #use warnings; use 5.010_000; use Carp; our $VERSION = '0.99'; =head1 NAME App::Cope - Functions for the B<cope> program =head1 SYNOPSIS
Code:
$ head -n15 /usr/local/share/perl/5.20.2/App/Cope/Extra.pm #!/usr/bin/env perl package App::Cope::Extra; #use strict; #use warnings; use 5.010_000; =head1 NAME App::Cope::Extra - Pre-defined highlighting syntax for common patterns =head2 SYNOPSIS use App::Cope::Extra; line qr{User: (\S+)} => \&{ user 'yellow' };
Thanks