1 package HTML::String::Value;
9 '""' => 'escaped_string',
17 my ($class, @raw_parts) = @_;
19 my $opts = (ref($raw_parts[-1]) eq 'HASH') ? pop(@raw_parts) : {};
22 if (ref($_) eq 'ARRAY') {
24 } elsif ($_->$_isa(__PACKAGE__)) {
31 my $self = bless { parts => \@parts, %$opts }, $class;
39 if ($self->{ignore}{scalar caller}) {
40 return $self->unescaped_string;
43 return join '', map +(
55 sub unescaped_string {
58 return join '', map $_->[0], @{$self->{parts}};
62 my ($self, $str, $prefix) = @_;
64 return $self unless $str;
66 my @parts = @{$self->{parts}};
69 $str->$_isa(__PACKAGE__)
75 unshift @parts, @new_parts;
77 push @parts, @new_parts;
80 return ref($self)->new(@parts, { ignore => $self->{ignore} });
85 return 1 if grep length($_), map $_->[0], @{$self->{parts}};