Forum Webscript.Ru

Программирование => Perl => Тема начата: djkostya от 16 Мая 2006, 14:35:05

Название: Модуль и хэши
Отправлено: djkostya от 16 Мая 2006, 14:35:05


#!/usr/bin/perl
package modules::SMTP;
our $VERSION = 1.00;
use strict;
use Mail::Sender;


sub new {
  my $proto = shift;
  my $class = ref($proto) || $proto;
  my $self  = {};
  $self->{TEMPLATE} = undef;
  $self->{EMAIL} = undef;
  bless($self, $class);
  return $self;
}


sub template { #Шаблон для отправки письма
my $self = shift;
if (@_) { $self->{TEMPLATE} = shift }
return $self->{TEMPLATE};
}

sub email { #Куда отправляем письмо
my $self = shift;
if (@_) { $self->{EMAIL} = shift }
return $self->{EMAIL};
}


1;

 

Простой модуль....
Так вот у меня проблема как из скрипта передать в модуль

modules::SMTP->send(\'mail.tmpl\', \'info@domain.ru\' {res1=>"456", res2=>"7865", res_ok=>"ffff"} )


То есть застрял на хэшах.
Название: Модуль и хэши
Отправлено: vladsu от 16 Мая 2006, 20:20:18
Что-то я не вижу метода send в классе modules::SMTP.
Название: Модуль и хэши
Отправлено: djkostya от 16 Мая 2006, 20:22:46
Ну я типо не дописал его...
Мне всего лиш нужно в метод send закинуть структуру хэша...

Вот и не написал его так как я не знаю как сделать
Название: Модуль и хэши
Отправлено: vladsu от 16 Мая 2006, 22:58:56
Вот Вам пример, остальное надеюсь додумаете

#!/usr/bin/perl -w

use strict;
#use Data::Dumper;

mysend(1,2,\\{1=>\'a\',2=>\'b\'});

sub mysend {
    my ($v1,$v2,$h1) = @_;

    #print Dumper($h1);
    print ${$h1}->{1},"\\n";
    for ( keys %{${$h1}} ) {
          print "key $_ has value ${$h1}->{$_} \\n";
    }

}