#!/bin/perl -w use strict; my %tmp; while( my $tmp=) { if( $tmp=~ /^(.+)(\d+)$/) { $tmp{$1}->[$2]= 'foo'; # don't you love auto-vivification? } } __DATA__ foo2 foo5 foo0 bar bar2 bar1 foo3