При использовании операторов проверки файлов результаты stat()
кэшируются в _
, поэтому, если вы хотите выполнить несколько тестов, вам не нужно делать больше системных вызовов.
if (-f $file_) {
say 'readable' if -r _;
say 'writable' if -w _;
}
Если я использую их в given…when
, они используют _
или $_
?
given ($file) {
when (! -f) {}
when (-r) {say 'readable';continue}
when (-w) {say 'writable';continue}
....
}
У меня сложилось впечатление, что это будет использовать $_
. Это правда? Кроме того, поскольку given…when
не имеет провала по умолчанию, необходимо использовать continue
для просмотра других совпадений.
Вероятно, этот случай лучше разрешается с помощью if
с и использует меньше печатания, чем с given…when
. Но слишком заманчиво посмотреть, сможете ли вы соответствовать given…when
при рефакторинге вашего программного обеспечения. ; -)