Thanks for the clue. I have narrowed some things down. The counter is much nicer. I just need to get a better split I think as I'm not getting the grouping I would like.
On Feb 8, 2010, at 7:19 PM, Uri Guttman wrote: >>>>>> "CS" == Curt Shaffer <cshaf...@gmail.com> writes: > > CS> OK. So I have tried some things. I guess the largest issue that I > CS> can't find an answer for elsewhere is how to evaluate variables to > CS> be >, = or <100 in one evaluation. Before I get there, obviously > CS> I need to get the variables. > > CS> @hping_array = (); > > you are not using strict and warnings. always ask perl for all the help > it can give you. > > CS> $hcount = 1; > CS> for (; $hcount < 5;){ > > that is not perlish. > > for ( 1 .. 5 ) { > > no need for a counter since you don't even use it. > > CS> system ("sudo hping3 $domain -S -p 80 -c 1|awk '{print $5}'"); > > system doesn't return any output to the program, just to stdout. you > need qx or backticks to do this. and why shell out to awk when perl can > do that for you? > > my $hping = `sudo hping3 $domain -S -p 80 -c 1` ; > > then parse out the field value you want. i don't know hping3's format > but you seem to want the 5th white space separated field. this could be > off by one as iirc awk is 1 based on fields but perl is 0 based. > > push( @hpings, (split ' ', $hping)[5] ; > > > CS> chomp; > > that is chomping $_ is not even set. enabling warnings would have told > you this. > > CS> push hping_array, $_; > > where is the @ in that array name? that won't even compile. please make > sure your code at least compiles before posting it. > > you seem to think system puts its output into $_. where did you get that > idea? > > CS> $hcount++; > > not needed as i said above > > CS> } > CS> print "@hping_array\n"; > > CS> So the code is trying to run the hping3 command against $domain. I > CS> am awking for $5 which is the IPID value in the response. I am > CS> trying to push it into the array @hping_array. This should happen > CS> 5 times. > > well, it doesn't. > > > CS> Then I'm printing @hping_array. I'm only getting one value and it > CS> is actually the whole response from hping. It seems to not respect > CS> the awk. > > no, that isn't true. the system call is sending hping's output to stdout > (via awk but maybe that code is broken too. my awk is massively > rusty). your print is printing nothing (which warnings would also have > told you). > > CS> I have done this partially with just doing my $hping_result = > CS> `sudo hping3 $domain -S -p 80 -c 1|awk '{print $5}'; So I know the > CS> system command by itself is working. > > if you know about backticks, why did you switch to system? please read > the docs and learn the difference between the two. > > uri > > -- > Uri Guttman ------ u...@stemsystems.com -------- http://www.sysarch.com -- > ----- Perl Code Review , Architecture, Development, Training, Support ------ > --------- Gourmet Hot Cocoa Mix ---- http://bestfriendscocoa.com --------- -- To unsubscribe, e-mail: beginners-unsubscr...@perl.org For additional commands, e-mail: beginners-h...@perl.org http://learn.perl.org/