我有一个多线输出,我需要分割并将数据推送到数组

时间:2015-11-06 07:36:07

标签: perl split dynamic-arrays

我的输出具有与唯一数据类似的行。我必须将唯一数据剪切成不同的数组并在forloop中使用它。此外,我的输出没有固定数量的行,并且取决于保存在cron作业中的执行时间。

例如:

Thestudentname=ravi&class=2&availbus=yes&city=hyd
Thestudentname=shyam&class=4&availbus=no&city=cal
Thestudentname=rohan&class=6&availbus=yes&city=mum
.
.
.

这里的名称,类,总线和城市应该是我的数组,并且它们都具有相同数量的数组元素用于给定的执行。

1 个答案:

答案 0 :(得分:-2)

#!/usr/bin/perl
use strict;
use warnings;

my ( @names, @classes, @buses, @cities );

while (<DATA>) {    # loop over lines; line is stored in $_
    my ( $name, $class, $bus, $city ) =
      /Thestudentname=(\w+)&class=(\d+)&availbus=(\w+)&city=(\w+)/;
    push @names,   $name;
    push @classes, $class;
    push @buses,   $bus;
    push @cities,  $city;
}

# Print out the arrays' content
use Data::Dumper;
print Dumper \( @names, @classes, @buses, @cities );

__DATA__
Thestudentname=ravi&class=2&availbus=yes&city=hyd
Thestudentname=shyam&class=4&availbus=no&city=cal
Thestudentname=rohan&class=6&availbus=yes&city=mum