The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"ооп методы"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы WEB технологии (Public)
Изначальное сообщение [ Отслеживать ]

"ооп методы"  
Сообщение от bibi on 22-Апр-09, 08:44 
пишу модуль

у меня есть  допустим передается какой-то метод
$self->valid_id

как мне узнать название которое идет после $self->...?

можно ли это получить?

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "ооп методы"  
Сообщение от angra (ok) on 22-Апр-09, 08:59 
>есть  допустим передается

Это ты мощно завернул. Иди деточка в школу, пусть тебя там научат выражать свои мысли понятным для всех языком.
Хотя если виной всему вещества, то подожди пока попустит, перечитай заново бред, который ты запостил, и скажи "нет" веществам.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "ооп методы"  
Сообщение от bibi on 23-Апр-09, 05:19 
я не правильно задал, извените

но вот тут нашел https://www.opennet.ru/tips/info/415.shtml

я в гугле набрал но ничего не нашел про main функцию


кстате. подскажите... я пишу классы у меня штук 30-40 класво всего

использовал в них почти всегда полиморфизм (псевдо-класс SUPER или next)

подскажите можно ли как-то определить в index.pl в пусковом файле все методы какого-то класса?
и загрузить их по очереди их и какие-то другие (те которые надо, допустим) ....

то есть такой dispatcher как в catalyst?

никто не использовал?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "ооп методы"  
Сообщение от bibi on 23-Апр-09, 05:41 
мне надо было определить функцию вложенности

(caller(1))[3]

1 - это функция от куда была вызвана, 0 - ваша функция
3 - функцию надо

http://perldoc.perl.org/functions/caller.html

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "ооп методы"  
Сообщение от angra (ok) on 23-Апр-09, 05:42 
Если я смог правильно понять что вы хотите, то вот переделка get_sub_list для выдачи функций из любого namespace, в примере DBI.
#!/usr/bin/perl
use DBI;
print join("\n",&get_sub_list('DBI'));
sub get_sub_list{
  my $m=shift;
  no warnings;
  my ($code,@fn,@a);
  print $m;
  eval('@a=keys(%'.$m.'::);');
  foreach (@a){
    next unless /^[\w_]/;
    push(@fn,$_) if eval('defined(*'.$m.'::'.$_.'{CODE})');
  }
  use warnings;
  @fn
}
Как легко догадаться вместо DBI можно использовать любой модуль.

main:: это namespace основной программы, он используется неявно, если не указан другой посредством package.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "ооп методы"  
Сообщение от bibi on 23-Апр-09, 12:46 
спасибо, да, именно это

а как управлять лкссамаи, кто как управлял классами?

целесобразно ли так писать?

ПРИМЕРНО:

use MyPr::Form::Bla-bla;
use MyPr::Valid::Bla-bla;
use MyPr::Session::Bla-bla;
use MyPr::Bla-bla::Bla-bla;
всего 30-40
...............................


if (defined $param->{form} ) {

    my @m = join("",&get_sub_list('MyPr::Form::'.$param->(form)));
    
   if (defined @m) {
     my @vm = join("",&get_sub_list('MyPr::Valid::'.$param->(form)));
  
      foreash (@vm) {
       my $obj = 'MyPr::Valid::'.$param->(form)->new($param);
       $obj->$_();
     }

   }

    foreash (@m) {

        my $obj = 'MyPr::Form::'.$param->(form)->new();

        $obj->$_();

} else {


    if ($param->{global-bla}) {

    my @mb = join("",&get_sub_list('MyPr::Bla-bla::'.$param->(form)));

    foreash (@mb) {

        my $obj = 'MyPr::Bla-bla::'.$param->(form)->new();

        $obj->$_();

    }


}

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру