В Perl мы указываем встроенный
В Perl мы указываем встроенный ключ -s в строке вызова (#! /us г/с in, perl -s) для автоматического разбора параметров. Это самый простой способ разбора параметров, переданных в командной строке. Искушения ради, мы могли бы использовать какой-либо модуль из семейства Getopt. Если в командной строке присутствует ключ (например -г), то при запуске сценария устанавливается глобальная скалярная переменная с тем же именем (например $г). Если Perl вызывается без ключа -г, мы вернемся к старому поведению подпрограммы - она будет лишь сообщать, что найдены core-файлы.
Когда вы пишете автоматические утилиты, постарайтесь сделать так, чтобы разрушительные действия были затруднены. Учтите: Perl, как и большинство серьезных языков программирования, позволяет уничтожить файловую систему без особых усилий.
Теперь, чтобы ориентированные на NT/2000 читатели не подумали, что предыдущие примеры к ним не относятся, покажем, что эта программа может пригодиться и для них. Единственное изменение строки:
if (Sname eq "core") {
на:
if (Sname eq MSCREATE.DIR") {
позволяет создать программу, которая удалит все раздражающие скрытые файлы нулевой длины, забытые инсталляторами некоторых программ Microsoft.
Имея в запасе этот код, давайте вернемся к проблеме, с которой начиналась эта глава. После того как мой портативный компьютер приземлился на пол, средство, которое позволило бы определить, какие файлы можно прочитать с диска, а какие нет, стало необходимо мне, как воздух.
Вот какую программу я написал для этого:
use Cwd: # модуль для определения текущего рабочего каталога
$1=1; # отключаем буферизацию ввода/вывода
sub ScanDirectory {
my ($workair) = shift;
my($startdir) = &cwd;
ft запоминаем, откуда мы начали chdir($workdir)
or die "Невозможно зайти а каталог $workdir:$'\n":
opendir(DIR, ".")
or die "Невозможно открыть каталог $workdir:$!\n";
my @names = readdir(DIR);
closedir(DIR);
foreach my $name (@names){ next if ($name eq "."); next if ($name eq "..");
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий