#!/usr/bin/perl use warnings; use strict; use List::Util; sub get_text_and_ints { my @pairs = split(/([+-]?\d+)/); my @text = (); my @integers = (); while (@pairs) { push (@text, shift (@pairs)); push (@integers, shift (@pairs)) if (@pairs); } return (\@text, \@integers); } # # Testing # foreach () { chomp; my ($text,$ints) = get_text_and_ints($_); my $max_int = List::Util::max (@$ints); print "/$_/ - has ".(defined $max_int? "maximum of $max_int":"no integers")."\n"; for (my $i = 0; $i < @$ints; $i++) { print " - integer $ints->[$i] is proceeded by /$text->[$i]/\n"; } } __DATA__ ASBSDEC 34 GADVVEEVEETTE 56 IOEOREAK GKJEOG EFEAF 1090 DAFFEE 3762 ASB C 134 PPKOREAK EFEAF 290 What Is The Sqrt Of -1? This Line Is Only Text 101 Dalmations 42