2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Perl subroutine
Сообщение25.05.2016, 00:11 
Заслуженный участник
Аватара пользователя


11/12/05
10078
Кто знает, как в затолкать в список параметров субрутины/процедуры имя файла для выходных данных?

Код:
#!/usr/bin/perl
#use strict;
#use warnings;

open(OUT, ">$ARGV[0]");

sub printfirsttwo
{
   print $_[0] "Your first argument was $_[1]\t";
   print $_[0] "and $_[2] was your second\n";
}



То есть мне нужно, чтобы при при вызове процедуры
Код:
&printfirsttwo("OUT","Alpha","Beta","three");

в файле "outputA.txt" было написано "Your first argument was Alpha and Beta was your second"

Гугл даёт кучу ссылок на примеры, но нужного не нашел.

 Профиль  
                  
 
 Re: Perl subroutine
Сообщение25.05.2016, 01:07 
Заслуженный участник


04/05/09
4589
Код:
#! /usr/bin/perl
use strict;
use warnings;

open(OUT, ">$ARGV[0]");

sub printfirsttwo
{
  my $out = $_[0];
  print $out "Your first argument was $_[1]\t";
  print $out "and $_[2] was your second\n";
}

printfirsttwo(*OUT,"Alpha","Beta","three");

 Профиль  
                  
 
 Re: Perl subroutine
Сообщение25.05.2016, 02:05 
Заслуженный участник
Аватара пользователя


11/12/05
10078
venco,

Спасибо! Сейчас нет возможности проверить, позже доложу.

Upd.

Кажется, работает! Спасибо еще раз.

 Профиль  
                  
 
 Re: Perl subroutine
Сообщение07.07.2016, 20:21 
Заслуженный участник
Аватара пользователя


11/12/05
10078
У мене новый вопрос по перлу. Есть строки вида

10А20Б25А85В45Г14А или, скажем, 50Е38А41Д

В общем, неопределенной длины наборы из цифр(целых чисел вообще говоря), разделенных различными буквами.
Как можно вытащить из строки ВСЕ числа стоящие перед буквой "А"? Желательно в виде вектора. Например, для первой строчки надо получить

[10,25,14]

а для второй [38].

А еще лучше, получить такие векторы для каждой буквы в строке.

 Профиль  
                  
 
 Re: Perl subroutine
Сообщение07.07.2016, 20:51 
Заслуженный участник


04/05/09
4589
Начните с этого:
Код:
  my $str = "10A20B25A85C45D14A";
  my $sym = "A";
  my @numbers = $str =~ m/([0-9]+)$sym/g;

 Профиль  
                  
 
 Re: Perl subroutine
Сообщение07.07.2016, 21:04 
Заслуженный участник
Аватара пользователя


11/12/05
10078
Работает!!
Спасибо большое venco, я Ваш должник!

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group