В коде ниже, что именно делает команда <*>
?Что означает <*> В Perl?
my @usbHddFileList = <*>;
foreach $usbHddFile (@usbHddFileList)
{
system("rm -f $curMountDir/$usbHddFile </dev/null> /dev/null 2>&1");
}
В коде ниже, что именно делает команда <*>
?Что означает <*> В Perl?
my @usbHddFileList = <*>;
foreach $usbHddFile (@usbHddFileList)
{
system("rm -f $curMountDir/$usbHddFile </dev/null> /dev/null 2>&1");
}
<>
означает readline(ARGV)
<IDENTIFIER>
означает readline(IDENTIFIER)
<$IDENTIFIER>
означает readline($IDENTIFIER)
<...>
(все остальное) означает glob(qq<...>)
Так <*>
означает glob(qq<*>)
или glob('*')
.
glob
Используется для создания нескольких строк или имен файлов из шаблона.
В контексте списка <*>
aka glob('*')
возвращает все файлы в текущей рабочей директории, отличной от тех, чье имя начинается с .
.
Если что в угловых скобках не является ни указатель_на_файл, ни простой скалярной переменной, содержащей ссылку на файл имя, тип-глобу или тип-глобу ссылка, это интерпретируется как шаблон имени файла, чтобы быть globbed, и в зависимости от контекста возвращается список имен файлов или следующее имя файла в списке . Это различие определяется только на синтаксических основаниях.
И в частности, в коде OP он возвращает имена всех (неточечных) файлов в текущем рабочем каталоге и сохраняет их в '@usbHddFileList '. – ThisSuitIsBlackNot
См. Также [Разница между двумя формами командной строки имени файла Perl] (http://stackoverflow.com/questions/12115772/difference-between-two-forms-of-perl-filename-wildcard-command) –
Кроме того: Использование 'system (" rm ... ")' для удаления файлов ** крайне ** плохой формы и подвержено рискам безопасности (подумайте о файле с '$ (rm -rf ~)' в его имени). Вместо этого используйте 'unlink()'. –
Re: '« возможно, поисковым машинам не нравятся специальные символы ». .. В Google вы можете процитировать специальные символы для примера [этот поиск google] (https://www.google.no/?gws_rd=ssl# q = perl +% 22-x% 22) не находит оператора проверки файлов, если вы не включаете котировки surronding –