#!/usr/bin/perl -w use strict; my @ret = pow("3 2 3 2",(2,3,5,7)); print +($_,$/) for @ret; sub pow { my ($fmt, @values) = @_; my @fmts = split /\s+/, $fmt; return map {$_**shift(@fmts) } @values; } __END__ 8 9 125 49