Pull to refresh
29
0
Алексей @ksurent

User

Send message

Интересная ошибка Perl-разработчика

Reading time2 min
Views1.2K
Представим, что у вас есть код:
  1. chomp(my $input = <STDIN>);
  2. my $kinda_secret = get_data($input);
  3. if(defined $kinda_secret) {
  4.  print 'Your secret is: ', $kinda_secret
  5. }
  6. else {
  7.  print 'No soup for you'
  8. }
  9.  
  10. sub get_data {
  11.  my $input = shift;
  12.  open my $fh, '<', 'data.file' or return;
  13.  my $retval;
  14.  while(<$fh>) {
  15.   if(/^$input:(.+?)$/) {
  16.    $retval = $1;
  17.    last
  18.   }
  19.  }
  20.  close $fh;
  21.  
  22.  $retval
  23. }
* This source code was highlighted with Source Code Highlighter
.

Ничего экзотичного. Вариации такого кода могут встретиться где угодно. Смысл кода, надеюсь, ясен (я не имею в виду его практическую ценность).

Вы уже увидели ошибку? Если да, то дальше можно не читать.
Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments12

Moose(X). Продолжение

Reading time6 min
Views2.6K
В продолжение топика Use Moose; Современное ООП в Perl, я хочу рассказать про некоторые интересные возможности, которые предоставляет Moose и его расширения.
Из упомянутого выше топика можно понять, что с Moose вам не придется тратить время на реализацию объектной модели. Но кроме автоматического создания аксесоров/мутаторов и конструктора, есть еще куча всяких полезностей и интересностей. А уж с помощью расширений, так вообще можно преобразить Perl до неузнаваемости (в хорошую, естественно, сторону).

Примеры кода я буду приводить из своего модуля, который я пробую переписать в стиле modern perl.
Читать дальше →
Total votes 29: ↑23 and ↓6+17
Comments37

Information

Rating
Does not participate
Date of birth
Registered
Activity