DBIx-Web
view release on metacpan or search on metacpan
lib/DBIx/Web.pm view on Meta::CPAN
}
sub lsTag { # Attribute list to tag strings list
my($c, $v, $n);# htmlEscape, urlEscape, tagEscape, self, tagname, attr=>value,...
$#_+1 !=2*int(($#_+1)/2)
? 0
: substr($_[$#_],0,1) eq "\n"
? ($n =$_[$#_])
: ($c =$_[$#_]);
((!ref($_[$[+4])
? ('<', $_[$[+4]
,(map {$_[$_]
? (defined($_[$_+1])
? (' ', substr($_[$_],0,1) eq '-' ? substr($_[$_],1) : $_[$_], '="'
, &{$_[$_] ne 'href' ? $_[$[] : $_[$[+1]}
($_[$[+3], !ref($_[$_+1]) ? $_[$_+1] : strdata($_[$[+3], $_[$_+1]))
, '"')
: ())
: eval{$c =$_[$_]; $v =$_[$_+1]; ()}
} map {$_*2+3} $[+1..int(($#_-3)/2) )
,(!defined($c)
? ' />'
: $c eq '0'
? '>'
: ('>'
, (ref($v) eq 'CODE') && ($v =&{$v}) && 0
? ()
: ref($v) eq 'ARRAY'
? &lsTag(@_[$[..$[+3], $v)
: defined($v)
? &{$_[$[+2]}($_[$[+3], $v)
: ()
, '</', $_[$[+4], '>') )
)
: ref($_[$[+4]) eq 'ARRAY'
? (map {ref($_) ne 'ARRAY' ? &{$_[$[+2]}($_[$[+3], $_) : lsTag(@_[$[..$[+3], @$_)} @{$_[$[+4]})
: ref($_[$[+4]) eq 'HASH' && eval{$v =$_[$[+4]; $c =$v->{'-'}||$v->{'-tag'}||'tag'}
? ('<', $c
,(map {defined($v->{$_})
?(' '
, substr($_,0,1) eq '-' ? substr($_, 1) : $_, '="'
, &{$_ ne 'href' ? $_[$[] : $_[$[+1]}
($_[$[+3], !ref($v->{$_}) ? $v->{$_} : strdata($_[$[+3], $v->{$_}))
,'"')
:()
}
sort grep {$_ && $_ !~/^-(tag|data|)$/} keys %$v)
, (grep {exists($v->{$_}) && eval{$v =$v->{$_}}} '', '-data')
? ('>'
,(ref($v) eq 'CODE') && ($v =&{$v}) && 0
? ()
: ref($v) eq 'ARRAY'
? &lsTag(@_[$[..$[+3], $v)
: defined($v)
? &{$_[$[+2]}($_[$[+3], $v)
: ()
,'</',$c,'>')
: exists($v->{0})
? '>'
: ' />'
)
: ()
), !$n ? () : $n)
}
( run in 0.299 second using v1.01-cache-2.11-cpan-b61123c0432 )