[ic] Loop with embedded Perl

Mike Heins mike at perusion.com
Mon Aug 1 10:30:02 EDT 2005


Quoting Jeff Boes (jeff at endpoint.com):
> I'm stuck on this:
> 
>         <select name="year">
>         <option value="">Select one</option>
>         [loop list=`1981..1900+(localtime())[5]`
>          ] <option value="[loop-code]">[loop-code]</option>
>         [/loop]
>         <option value="prior 1981">1980 or older</option>
>         </select>
> 
> What I'm attempting to generate is a drop-down list with a series of
> year values, 1981 to the current year.
> 
> If I can get this working, what I'd really like is ..
> 
> list=`reverse 1981..1900+(localtime())[5]`
> 
> but at present neither of these works; I get an empty list and only the
> last option.

You might want to join it with something. [loop ...] is ITL, not
Perl, and it doesn't accept Perl array values directly...

         [loop list=`
			my $year = 1900 + (localtime())[5];
			return join(" ", 1981 .. $year);
		`
          ] <option value="[loop-code]">[loop-code]</option>
         [/loop]

Sometimes trying to be too terse causes problems. I suggest that
when you have trouble you just write a function and skip the
mimimalist one-liner approach. And not using whitespace makes
code much harder to read.

-- 
Mike Heins
Perusion -- Expert Interchange Consulting    http://www.perusion.com/
phone +1.765.647.1295  tollfree 800-949-1889 <mike at perusion.com>

People who want to share their religious views with you
almost never want you to share yours with them. -- Dave Barry


More information about the interchange-users mailing list