#!/usr/bin/perl -w use strict; use English; use Net::Pcap; use Time::HiRes qw (alarm time ); my($dev, $pcap_t, $err); $dev = Net::Pcap::lookupdev(\$err); $pcap_t = Net::Pcap::open_live($dev, 1500, 1, 0, \$err); my $count = 0; sub process_pkt { my ( $user_data, $hdr, $pkt ) = @_; $count++; $SIG{ALRM} = sub { printf ("%16.5f %d\n", time, $count); $count = 0 }; # setitimer(ITIMER_REAL, 0.5, 0.5); alarm(0.5); } Net::Pcap::loop( $pcap_t, 0, \&process_pkt, "argument"); Net::Pcap::close($pcap_t);