#!/usr/bin/perl -w use strict; my @array = 1..5; while (permute @array) sub permute { my @temp; while ( $#temp < $#_) { my $i; for ($i = $#temp; $i < $#_; $i++) { swap @_[$i] @_[$#temp]; permute; swap @_[$i] @_[$#temp]; } } print $_; } sub swap { my $k; my $l; my $temp; $temp = $k; $k = $l; $l = $temp; }