こんばんは ![]()
Perl 6 Advent Calendar 2015の13日目です。
今日はFile Test operatorsについて
File Test operators
| operator | description |
|---|---|
| :e | Exists |
| :d | Directory |
| :f | File |
| :l | Symbolic link |
| :r | Readable |
| :w | Writable |
| :x | Executable |
| :s | Size |
| :z | Zero size |
使い方
ファイルが存在するか
- Perl5 では
-e 検査対象と書いていました。
use v5.18;
my $exists = '.bash_profile';
if( -e $exists ){
say 'Exists'; #=> Exists
}
- Perl6 ではこんな感じに書きます。
use v6;
my $exists = '.bash_profile';
if $exists.IO.e {
say 'Exists'; #=> Exists
}
- [参考] testコマンド
$ test -e .bash_profile && echo $?
0
読み取り可能か
- Perl5
use v5.18;
my $readable = '.atom/packages/japanese-menu/package.json';
if( -r $readable ) {
say 'Readable'; #=> Readable
}
# ファイルサイズ
say -s $readable; #=> 7956
- Perl6
use v6;
my $readable = '.atom/packages/japanese-menu/package.json';
# こんな風にも書けます
if $readable.IO ~~ :r {
put 'Readable'; #=> Readable
}
# ファイルサイズ
put $readable.IO.s; #=> 7956
おわりです。