in reply to Problem with string manipulation

If you stand back from the problem what you want to match is the entire string between the first pair or " chars ie m/"([^"]+)"/ so all you need is:

while ( my $line = <DATA> ) { print qq!modelCombo.addItem("$1");\n! if $line =~ m/"([^"]+)"/; } __DATA__ "HP LaserJet IIISi" {set model "net_ljx000"} "HP PaintJet XL300" {set model "net_dsnj"} "HP LaserJet 4 Plus / 4M Plus" {set model "net_lj4x"} "HP LaserJet 5L" {set model "net_lj4x"} "HP LaserJet 5MP" {set model "net_lj4x"} "HP LaserJet 5P" {set model "net_lj4x"}<p>

If the space has some significance and you have other format records, or you want to capture the second part as well you could make that m/^\s+"([^"]+)"\s*\{set model "([^"]+)"\}/ which is rather more specific for that record structure.

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print