t00t Posted November 23, 2006 Report Share Posted November 23, 2006 Люди. Хелп! очень прошу помощи! мне нужно написать скрипт который бы создавал папки на заданное (введенное с клавы) значение в ширину и глубину. ТО есть допустим ширина 3, глубина три. При запуске у нас появляется три папку, в каждой из этой папки свои три папки, соответственно в тех папках еще по три папки. В ширину я допер как делать. через цикл делал, а вот в глубину не знаю. Помогите плиззз. Уже две недели бьюсь. Я в этом shell плохо разбираюсь как и в программировании. с комментами плиззззз. очень нужно. Link to comment Share on other sites More sharing options...
t00t Posted November 24, 2006 Author Report Share Posted November 24, 2006 Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно. #!/usr/bin/perl my $width = $ARGV[0]; my $depth = $ARGV[1]; createdirs($depth, '.'); sub createdirs { my ($d, $dir) = @_; my $i; for($i = 0; $i < $width; $i++) { mkdir("$dir/$i", 0777); if($d > 1) { createdirs($d - 1, "$dir/$i"); } } } Link to comment Share on other sites More sharing options...
killogramm Posted November 24, 2006 Report Share Posted November 24, 2006 Вот скриптик на перле. Помогите , понять его, закоментируйте его построчно. Перла не знаю, но интуитивно понятно о чем речь: #!/usr/bin/perl - путь к интерпретатору языкаmy $width = $ARGV[0]; - видимо присваивание переменным значений переданных параметров. Здесь ширинаmy $depth = $ARGV[1]; - здесь глубинаcreatedirs($depth, '.'); - это видимо вызов процедуры createdirs и передача ей параметра глубиныsub createdirs { - сама процедура (начало)my ($d, $dir) = @_; - х/з что, но вроде присваивания двум переменным значения переданного процедуре (глубина)my $i; - видимо инициализация переменной счетчика циклаfor($i = 0; $i < $width; $i++) - оператор цикла (i от 0 до значения ширины, с шагом 1){ - тело цикла (начало) mkdir("$dir/$i", 0777); - вызов функции создания папки (вот тут странность: вроде как мы $dir делим на $i, но $i сначала у нас = 0, значит "/" - означает видимо вычитание) Причем папка создается с правам 777, те открыт доступ на запись/чтение/поиск для всех if($d > 1) - проверка, если $d > 1, то продолжаем, иначе выход { createdirs($d - 1, "$dir/$i"); - вызов рекурсии } - конец проверки} - конец цикла} - конец процедуры Комментарии очень приблизительные, лучше что б кто-нибудь знающий перл меня поправил :( Link to comment Share on other sites More sharing options...
t00t Posted November 25, 2006 Author Report Share Posted November 25, 2006 Спасибо. Впринципе теперь все понятно.. =) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now