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
In reply to Re: Problem with string manipulation
by tachyon
in thread Problem with string manipulation
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |