
No.2ベストアンサー
- 回答日時:
この手の関数は Perl上「名前を持った演算子」という扱いになっていて, その名前の*直後*に開きかっこがあると
対応する閉じかっこまでを引数とみなす
というルールがあります (cf.
https://perldoc.jp/docs/perl/5.26.1/perlop.pod
). つまり
print (split(/tab/,$str))[-2];
だと
print (split(/tab/,$str))
という関数呼び出しをしちゃうんです. そうさせないためには
print ((split(/tab/,$str))[-2]);
とさらにかっこを追加するとか, あるいは
print +(split(/tab/,$str))[-2];
のように「『直後』が開きかっこではない」ようにする必要があります.
だったら単純に
print split(/tab/,$str)[-2];
でいいんじゃないかって話になるんだけど... この場合, 多分 split の返り値がスカラーコンテキストになるからダメだと思う. 確認してないけど.
ついでに.
$ が付いていればスカラー, @ が付いていれば配列なので
・$array[-2] は配列 @array の後ろから 2番目の要素を表すスカラー
・@array[-2] は配列 @array の後ろから 2番目の要素のみからなる配列
という違いがあります... が, たぶんこの違いが表に出てくるケースはそんなにないんじゃないかなぁ.
No.1
- 回答日時:
print ((split(/tab/,$str))[-2]);
要素にアクセスするだけなら
(split(/tab/,$str))[-2]
でいいんだけどこの場合は print の引数になっているので単純に
print (split(/tab/,$str))[-2]
とするとエラーになるので「引数をくくる」かっこがもう 1組必要.
split の引数のかっこがなくてもいいと思えば
print ((split /tab/,$str)[-2]);
とも書ける.
この回答へのお礼
お礼日時:2020/06/19 04:18
ありがとうございます。
printの引数になるとエラーになるとのことですが、実は下記表記までは思いつき試したのですが試しそこで諦めていました。
ただ、これでも引数は1つに見えますがprintから見ると別のものに見えているのでしょうか?
print (split(/tab/,$str))[-2];
print @array[-2];と同じ意味になるような気がしたのです。
ただ、これを書いていて思ったのですが普通は$array[-2];が正しいと思いますが、$の代わりに@でも良いのでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルVBAでTransposeの不思議
-
VB6で配列の最大値を簡単に求め...
-
二次元配列における要素数のは...
-
Excel VBA ユーザーフォームの...
-
文字の整列(printf)
-
二次元配列のインデックスについて
-
クラスに配列を渡す方法
-
リストボックスに縦スクロール...
-
2次元配列or複数回のファイル読...
-
参照配列の要素数の求め方は?
-
VBAでの一時停止と再開の方法
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
WinAPI「MsgWaitForMultipleObj...
-
VBA for i=1 to lastrow
-
VBのReturnの使い方
-
ダイアログのテキストにマウス...
-
「偶数・奇数の和」のフローチ...
-
UWSCの終了の仕方
-
多重ループの抜けだし方
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VBAのautofilter、criteriaの配...
-
文字の整列(printf)
-
クラスに配列を渡す方法
-
Dim flag(4) as boolean で配列...
-
エクセルVBAでTransposeの不思議
-
二次元配列のインデックスについて
-
Excel VBA ユーザーフォームの...
-
Strawberry Perl for Windows ...
-
バイナリデータの操作
-
perlで配列の要素が空なのを知...
-
perlの配列追加について
-
perl 配列の要素数について
-
グループ分けの仕方について
-
最後のフィールドを抜き出したい。
-
リストボックスに縦スクロール...
-
チェックボックスのperlでの値...
-
二つの配列から連想配列を作る方法
-
変則的なスタック配列を使う
-
二次元配列における要素数のは...
-
配列を使わずに、数字(連番)...
おすすめ情報