
No.2ベストアンサー
- 回答日時:
ループで配列の中身を読み込みながら別の新しい配列に値を入れ、その途中で、目的の場所になったらそこに入れたいデータを挿入するプログラムを書けばどうでしょうか。
$n=3;#どこに追加するか
$dat="new";#新データ
@arr=(0,1,2,3,4,5,6,7,8,9);#データを追加する配列
my(@new);
--$n;#数字調整
for($a=0;$a<=$#arr;++$a){
if($a==$n){push(@new,$dat);}else{}#新データを入れる
push(@new,$arr[$a]);#配列のデータを入れる。
}
大体こんな感じでしょうか。上三行は設定です。
適当に書いたサンプルなので、少し突っ込みどころとか間違いもあるかもしれません。他にも、while(@arr){}とshift(@arr)を使って、もう少し見た目すっきりにすることはできそうですね。
後アドバイスとして、関数に不満があったり、上手く動かなかったら、自作した方がいいですよ。
回答ありがとうございます。
関数があまり当てにならないので自作の方向で検討してみますw
何事も練習ということで、参考にさせてもらいます。
No.1
- 回答日時:
spliceですねぇ。
http://www.rfs.jp/sb/perl/05/splice.html
なにかを勘違いしちゃったんじゃないでしょうか?
@Arr = qw|ab cd ef gh|;
@Arr2 = qw|WX YZ|;
splice @Arr,2,0,@Arr2;
# @Arrの#2の位置から0個の要素を削除し、@Arr2を挿入する。
print "@Arr";# 結果 → ab cd WX YZ ef gh
この回答への補足
回答ありがとうございます。
やはりspliceを使うのが無難なのですねw
ただ、再度試した結果やはり追加というより上書きのようになってしまいますorz
例>
@array=(a,b,c,d,e);
$test="test";
splice @array,2,0,$test;
print @array;
結果は→a b ctest d e
のような感じなってしまいます。
splice関数で何か注意点などがあれば教えてください
お願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
クラスに配列を渡す方法
-
VBAのautofilter、criteriaの配...
-
perlで2次元配列をサブルーチ...
-
文字の整列(printf)
-
3から100までの素数を配列に入...
-
二次元配列のインデックスについて
-
プログラミング アルゴリズム
-
VBAでの一時停止と再開の方法
-
流れ図(フローチャート)が分か...
-
null 参照の例外が実行時に発生...
-
UWSCに制限時間を付けたいです
-
エクセル関数で1〜12の数字がル...
-
画面を強制的に再描画させる方法
-
CSVファイルの特定の行だけを読...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
VBAで3秒だけ時間を止めたい
-
円のHough変換をC言語で
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
文字の整列(printf)
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
二次元配列のインデックスについて
-
Excel VBA ユーザーフォームの...
-
Strawberry Perl for Windows ...
-
バイナリデータの操作
-
perlで配列の要素が空なのを知...
-
perlの配列追加について
-
perl 配列の要素数について
-
グループ分けの仕方について
-
最後のフィールドを抜き出したい。
-
リストボックスに縦スクロール...
-
チェックボックスのperlでの値...
-
二つの配列から連想配列を作る方法
-
変則的なスタック配列を使う
-
二次元配列における要素数のは...
-
配列を使わずに、数字(連番)...
おすすめ情報