use feature ":5.14"; use warnings FATAL => qw(all); use strict; use Data::Dump qw(dump pp); sub match($) { my ($Output) = @_; for my $match ( @$Output ) { if ( $match =~ m/^Routing entry for / ) { my @Data = split( ' ', $match ); my $octet = $Data[ 3 ] ; return split( /\./, $octet ) } } () } say "@{[match([split /\n/, <<'END'])]}"; a b c Routing entry for 1.2.3.4 END