Created
November 14, 2014 03:58
-
-
Save Code-Hex/b9b9359a3c93498dd511 to your computer and use it in GitHub Desktop.
perl でライブラリを作ってみた。(多分随時更新)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
use strict; | |
use warnings; | |
sub into(\@$$); | |
sub onto(\@$$); | |
sub into(\@$$){ | |
my $i = 0; | |
my @new_array; # 新しい配列 | |
my @before_array = @{$_[0]}; # 参照渡しされた配列を代入 | |
my $before_array_size = @before_array; # その配列のサイズ | |
my ($insert_number, $insert_frase) = ($_[1], $_[2]); # 挿入する番号、挿入するもの | |
# もし、元の配列の要素数より、挿入する番号が大きい場合、 | |
# 挿入する番号を要素数と等しくする。 | |
$insert_number = $before_array_size if($before_array_size < $insert_number); | |
for (; $i < $insert_number; $i++){ | |
# 元の配列の先頭要素から予備の配列に代入していく | |
$new_array[$i] = shift @before_array; | |
} | |
$new_array[$i] = $insert_frase; # $i = $insert_number | |
push @new_array, @before_array; | |
return @new_array; | |
} | |
sub onto(\@$$) { | |
my $i = 0; | |
my @new_array; # 新しい配列 | |
my @sub_array; # 予備の配列 | |
my @before_array = @{$_[0]}; # 参照渡しされた配列を代入 | |
my $before_array_size = @before_array; # その配列のサイズ | |
my ($insert_number, $insert_frase) = ($_[1], $_[2]); # 挿入する番号、挿入するもの | |
# もし、元の配列の要素数より、挿入する番号が大きい場合、 | |
# 挿入する番号を要素数と等しくする。 | |
$insert_number = $before_array_size if($before_array_size < $insert_number); | |
for (; $i < $insert_number; $i++){ | |
# 元の配列の最後の要素から予備の配列に代入していく | |
$sub_array[$i] = pop @before_array; # @sub: [9,8,7..] | |
} | |
@new_array = reverse @sub_array; # @new: [..7,8,9] | |
$before_array[$before_array_size - $i] = $insert_frase; | |
unshift @new_array, @before_array; | |
return @new_array; | |
} | |
1; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment