sub small_change { ('m'x(100*$_[0]))=~/^(m*)\1{24}(m*)\2{9}(m*)\3{4}(m*)$/; print "\$$_[0] can be broken into:\n".length($1)." quarters, ".length($2)." dimes, ".length($3)." nickels and ".length($4)." pennies.\n"; } small_change(3.43); # print: # $3.43 can be broken into: # 13 quarters, 1 dimes, 1 nickels and 3 pennies.