SkÃ¥ne Sjælland Linux User Group - http://www.sslug.dk Forside   Tilmelding   Postarkiv   Forum   Kalender   Søg
MhonArc Dato: [Date Prev] [Kronologisk oversigt] [Date Next]   TrÃ¥d: [Date Prev] [Oversigt trÃ¥de] [Date Next]   MhonArc
 

return i subfunctions



Hej
Et spørgsmål fra en PERL newbie.

Jeg er ved at lave min første Perl subfunction, men jeg kan død og pine
ikke
få
returneret mine arrays :/

Jeg forsøger at læse log-filen fra iptraf, som fortæller lidt om
netværkstrafik.
jeg ville lave en liste over trafikken på http-protokollen (i første
omgang)

nedenunder inkluderer jeg lige mit script , en (lille) log-fil, og
outputtet
fra
det perlscriptet.

Jeg vil gerne læse søjle 1 og 3 fra log-filen ind i variablene @packs og

@bytes.
Det lykkedes også. På outputtet kan man se at inde i subfunktionen får
@packs
og @bytes de rigtige værdier, men når de bliver returneret er der
ingenting i
mine variable..

jeg går ud fra jeg ikke kan finde ud af at returner to arrays, eller at
jeg
kalder subfunktionen forkert :/

Begejstringen for Perl er endnu stor, men nu har jeg gloet på det her
script
lige rigeligt længe.
Håber i kan hjælpe.
- Thomas Mejer Hansen

Jeg inkluderer en barberet udgave af mit script, og en barberet udgave
af min
log-fil Her er outputtet af scriptet :
-----------------------------------------
gauss 211% ./netstat_test.pl
Check for http!

Within Sub Function :
packs  860 2502 773 636 2790 1918 1505 913 295 1105
bytes  450572 1329211 366947 248376 1355232 1028240 703935 473795 147580

571987

Outside Sub Function :
packs
bytes
-----------------------------------------

logfilen http.log :
------------------------------
TCP/http: 860 packets, 450572 bytes total;
TCP/http: 2502 packets, 1329211 bytes total;
TCP/http: 773 packets, 366947 bytes total;
TCP/http: 636 packets, 248376 bytes total;
TCP/http: 2790 packets, 1355232 bytes total;
TCP/http: 1918 packets, 1028240 bytes total;
TCP/http: 1505 packets, 703935 bytes total;
TCP/http: 913 packets, 473795 bytes total;
TCP/http: 295 packets, 147580 bytes total;
TCP/http: 1105 packets, 571987 bytes total;
---------------------------------


scriptet 'netstat_test.pl' :
---------------------------------
#!/usr/bin/perl
#

$logfiles="./";
$tcp="http.log";

(@httppacks,@httpbytes)=get_protocol("http");

print "Outside Sub Function : \n";
print "packs @httppacks \n";
print "bytes @httpbytes \n";

sub get_protocol {
  my (@packs);
  my (@bytes);
  open(PRO, "cat $logfiles/$tcp | grep @_[0]|");
  print "Check for @_[0]!\n\n";
  $line=0;
  while (<PRO>) {
    ++$line;
    @p=split(/\s+/,$_,5);
    $packs[$line]=$p[1];
    $bytes[$line]=$p[3];
  }
  close PRO;
  print "Within Sub Function :\n";
  print "packs @packs \n";
  print "bytes @bytes \n\n";
  return $packs;
  return $bytes;
}

----------------------------------------



 
Forside   Tilmelding   Postarkiv   Oversigt   Kalender   Søg

 
 
Henvendelse vedrørende websiderne til <www_admin>. Senest ændret 2005-08-10, klokken 19:51
Denne side vedligeholdes af MHonArc .