sub missing { for$x(($_[0]=~/(.+)\..+/)[0]..($_[$#_]=~/(.+)\.(.+)/)[0]) {push@x,"$x.$2" unless grep$x eq(/(.+)\..+/)[0],@_};@x; } print missing qw (bar001.jpg bar002.jpg bar010.jpg);