in reply to splitting array in filehandling
use split, see Re: a perl, awstats and SHOUTCast history, csvpaste.pl, perlintro, Text::CSV/Text::xSV, site:perlmonks.org Text::CSV
#!/usr/bin/perl -- use strict; use warnings; use Data::Dump qw/ dd /; open my($in),'<',\'gs01.pri1.casino.sbo dns:192.168.101.21,icmp,http:3 +02,https:200,tcp:80,tcp:443,wget'; while(<$in>){ #~ "\$hostname" => 'gso1.pri1.casino.sbo', #~ "\$dns" => 'dns:192.168.101.21', #~ "\$icmp" => 'icmp', #~ "\$http" => 'http:302', #~ "\$https" => 'https:200', #~ "\$tcp1" => 'tcp:80', #~ "\$tcp2" => 'tcp:443', #~ "\$wget" => 'wget' { my( $hostname, $rest ) = split ' ', $_, 2; my( $dns, $icmp, $http, $https, $tcp1, $tcp2, $wget ) = split +',', $rest; dd [ $hostname, $dns, $icmp, $http, $https, $tcp1, $tcp2, $wge +t ] ; } { my( $hostnamedns, $icmp, $http, $https, $tcp1, $tcp2, $wget ) + = split ',', $_; my( $hostname, $dns ) = split ' ', $hostnamedns, 2; dd [ $hostname, $dns, $icmp, $http, $https, $tcp1, $tcp2, $wge +t ] ; } } __END__ [ "gs01.pri1.casino.sbo", "dns:192.168.101.21", "icmp", "http:302", "https:200", "tcp:80", "tcp:443", "wget", ] [ "gs01.pri1.casino.sbo", "dns:192.168.101.21", "icmp", "http:302", "https:200", "tcp:80", "tcp:443", "wget", ]
|
|---|