#Returns a copy of the input padded to size specified by pad_size with value pad_value. #If pad_size is positive then the array is padded on the right, if it's negative then on the left. #If the absolute value of pad_size is less than or equal to the length of the input then no padding takes place. #int pad_size, mixed pad_value, array input sub array_pad{ my($pad_size, $pad_value, @array) = @_; #this is just to get the absolute value of the pad_size my $temp = $pad_size; if($pad_size < 0){ $temp = $temp * -1; }#if #first let's see if the pad_size is less than or equal to the array size, return 0 no padding my $input_size = @array; if($temp <= $input_size){ return 0; }#if #since it didn't return 0, time to pad #if the pad_size is < 0, pad on the left, else the right if($pad_size < 0){ my @retval; $temp = $temp - $input_size; for(my $i=0;$i<$temp;$i++){ unshift(@array, $pad_value); }#for return @array; }#if else{ $temp = $pad_size - $input_size; for(my $i=0;$i<$temp;$i++){ push(@array, $pad_value); }#for return @array; }#else }#array_pad