🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.os.linux.programowanie
Article #72363

Re: per cgi i for wewnatrz function-oriented

#72363
From: Adam Osuchowski
Date: Sat, 15 Oct 2011 11:29
41 lines
2006 bytes
MaRc wrote:
> td(['Tomatoes' , 'no', 'yes', 'yes']),
>
> foreach $i (1..10){
> td(['$i' , 'a','b', 'c']),
> }
>
> td(['Broccoli' , 'no', 'no', 'yes']),
>
> [...]
>
> no ale po dodaniu foreach wywala mi błądną składnie
> syntax error at /usr/lib/cgi-bin/index.pl line 98, near "foreach "
> syntax error at /usr/lib/cgi-bin/index.pl line 103, near ")
> ]"
> syntax error at /usr/lib/cgi-bin/index.pl line 122, near "}"
> Execution of /usr/lib/cgi-bin/index.pl aborted due to compilation errors.

Nic dziwnego, skoro parser spodziewa się w miejscu pętli foreach'a jakiejś
wartości, która byłaby parametrem dla funkcji td(), a foreach jest
konstrukcją składniową. Poza tym, jak już, to jakiś przecinek za pętlą
by się przydał żeby oddzielić to od kolejnego parametru (ale to też nie
pomoże).

Niestety, w Perlu nie ma łatwej metody na tworzenie generatorów (czyli
tego, czego byś tu potrzebował). Można jednak uzyskać podobną funkcjonalność
eval'em albo funkcją anonimową.

Wstaw zamiast pętli foreach'a takie coś:

#v+
eval {
  local @_;
  foreach my $i (1 .. 10) {
    push @_, td([$i, 'a', 'b', 'c']);
  }
  @_;
},
#v-

to powinno dać to, czego oczekujesz.
Technical Details
Message-ID: <20111015112917.6b8b4567@polsl.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail
References: <j79q4p$c7c$1@pippin.nask.net.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!polsl.pl!not-for-mail
From: Adam Osuchowski <someone@somewhere.com>
Newsgroups: pl.comp.os.linux.programowanie
Subject: Re: per cgi i for wewnatrz function-oriented
Date: Sat, 15 Oct 2011 11:29:17 +0000 (UTC)
Organization: Politechnika Slaska, Gliwice
Lines: 41
Message-ID: <20111015112917.6b8b4567@polsl.pl>
References: <j79q4p$c7c$1@pippin.nask.net.pl>
NNTP-Posting-Host: hydra.ck.polsl.pl
Mime-Version: 1.0
X-Trace: polsl.pl 1318678157 28161 2a01:1d8:1:1::11 (15 Oct 2011 11:29:17 GMT)
X-Complaints-To: news@polsl.pl
NNTP-Posting-Date: Sat, 15 Oct 2011 11:29:17 +0000 (UTC)
In-Reply-To: <j79q4p$c7c$1@pippin.nask.net.pl>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit