Вопрос по Perl

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Вопрос по Perl

Сообщение Yury »

Господа, с таким Perl'ом помогите разобраться:

как сделать цикл, чтобы в приведенном фрагменте выделенные части команд менялись с приращением 50?
RunMenu("FILES_PLTEDT_LOAD:V:\\xeit\\prc_cu_au_sn638650.dhq","interactive",
sub { PanelResults("pltedt_LoadPlotFile",
"ignore_heirachy" => "1",
"all_in_one" => "0",
"reduce_height" => "0",
"move_pen" => "0",
"new_origin" => "0",
"button_pressed" => "ok",
"load_colour_table" => "1",
"coalesce_text" => "0",
"layer" => "8650E",
"suppress_warnings" => "0",
"plot_file" => "V:\\xeit\\prc_cu_au_sn638650.dhq",
"old_origin" => "1"
); },
"FINISH");
с перлом никогда не сталкивался :(
Аватара пользователя
Earl Grey
Маньяк
Сообщения: 2893
Зарегистрирован: 22 фев 2005, 15:07

Re: Вопрос по Perl

Сообщение Earl Grey »

Yury писал(а):Господа, с таким Perl'ом помогите разобраться:

как сделать цикл, чтобы в приведенном фрагменте выделенные части команд менялись с приращением 50?
RunMenu("FILES_PLTEDT_LOAD:V:\\xeit\\prc_cu_au_sn638650.dhq","interactive",
sub { PanelResults("pltedt_LoadPlotFile",
"ignore_heirachy" => "1",
"all_in_one" => "0",
"reduce_height" => "0",
"move_pen" => "0",
"new_origin" => "0",
"button_pressed" => "ok",
"load_colour_table" => "1",
"coalesce_text" => "0",
"layer" => "8650E",
"suppress_warnings" => "0",
"plot_file" => "V:\\xeit\\prc_cu_au_sn638650.dhq",
"old_origin" => "1"
); },
"FINISH");
с перлом никогда не сталкивался :(
Попробуй использовать дополнительную переменную, например, layerId. Наращивай ее в цикле и используй так:

"layer" =>$layerID + "E"
"plot_file" => "V:\\xeit\\prc_cu_au_sn63" + $layerID +".dhq"
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Re: Вопрос по Perl

Сообщение Yury »

Уникурсал Уникурсалыч писал(а): Попробуй использовать дополнительную переменную, например, layerId. Наращивай ее в цикле и используй так:

"layer" =>$layerID + "E"
"plot_file" => "V:\\xeit\\prc_cu_au_sn63" + $layerID +".dhq"
спасибо

про переменную-то понятно, непонятно было как ее в команду засунуть - твой вариант не пошел

в итоге вот что удалось нарисовать, вроде работает:
$sect = 8550;
while ($sect<=9150)

{

$st1 = sprintf("FILES_PLTEDT_LOAD:V:\\xeit\\prc_cu_au_sn63%d.dhq",$sect);
$st2 = sprintf("E%d",$sect);
$st3 = sprintf("V:\\xeit\\prc_cu_au_sn63%d.dhq",$sect);

RunMenu($st1,"interactive",
sub { PanelResults("pltedt_LoadPlotFile",
"ignore_heirachy" => "1",
"all_in_one" => "0",
"reduce_height" => "0",
"move_pen" => "0",
"new_origin" => "0",
"button_pressed" => "ok",
"load_colour_table" => "1",
"coalesce_text" => "0",
"layer" => $st2,
"suppress_warnings" => "0",
"plot_file" => $st3,
"old_origin" => "1"
); },
"FINISH");

$sect = $sect+50;

}
ir
Житель
Сообщения: 876
Зарегистрирован: 19 июл 2004, 23:36
Откуда: Ванкувер

Сообщение ir »

Eshe proshe:

$s=8550;
while ($s<=9150) {


RunMenu("FILES_PLTEDT_LOAD:V:\\xeit\\prc_cu_au_sn63$s.dhq","interactive",
sub { PanelResults("pltedt_LoadPlotFile",
"ignore_heirachy" => "1",
"all_in_one" => "0",
"reduce_height" => "0",
"move_pen" => "0",
"new_origin" => "0",
"button_pressed" => "ok",
"load_colour_table" => "1",
"coalesce_text" => "0",
"layer" => "$sE",
"suppress_warnings" => "0",
"plot_file" => "V:\\xeit\\prc_cu_au_sn63$s.dhq",
"old_origin" => "1"
); },
"FINISH");
$s=$s+50;}
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

ir писал(а):Eshe proshe:
...
спасибо, такой вариант конкатенации проверю завтра

а в теле скрипта стараюсь не иметь компонентов, которые могут поменяться со временем...
там на самом деле еще пара страниц внутри цикла, и случись необходимость изменить входные и выходные файлы (а случается такое бывает пару раз на дню, а то и чаще) - и лазь ищи, и обязательно что-нибудь пропустишь :wink:
ir
Житель
Сообщения: 876
Зарегистрирован: 19 июл 2004, 23:36
Откуда: Ванкувер

Сообщение ir »

Yury - если менять чего надо - для этого поиск есть :wink:
Я еще использую Perl builder - он почти все ошибки ловит и "несоответствия" - если тебе надо - я вышлю, он маленький.
Аватара пользователя
Yury
The L'ony
Сообщения: 26202
Зарегистрирован: 22 янв 2004, 13:48
Откуда: Мирный -> Vancouver
Контактная информация:

Сообщение Yury »

ir писал(а):Yury - если менять чего надо - для этого поиск есть :wink:
я даже больше скажу - есть еще поиск с заменой :lol:

но! поиск - вещь, конечно хорошая, проблема в том, чтобы не забыть что менять :wink:
поэтому определяю все потенциально переменчивое в начале скрипта - и не надо нам никакого поиска :)
ir писал(а):Я еще использую Perl builder - он почти все ошибки ловит и "несоответствия" - если тебе надо - я вышлю, он маленький.
буду признателен

зы. конкатенация работает, спасибо
Ответить