> attached is a copy of the excel file if it helps. I see it now. It's probably some odd unprintable character. You could try somehting like this that will change unprintable characters to their viewable equivalent ( ascii, hex?? I can't remember.) But I got his form someone a while ago.
($tmp = $line) =~ s/([^\x20-\x7E])/'\x' . sprintf "%x20", ord $1/ge; print "DEBUG : NON PRINT ACHAR -$tmp- <br> \n"; So if you run this and get soemthing like : DEBUG : NON PRINT ACHAR -my sting %n20- then you can look up and see what the regex equivalent of %n20 is and kill it all the way to the bank. Try that and see. Dan > > > -----Original Message----- > > From: Paul Kraus [mailto:[EMAIL PROTECTED]] > > Sent: Thursday, January 16, 2003 11:03 AM > > To: 'Dan Muey'; 'Perl' > > Subject: RE: Where is the new line coming from. > > > > > > come to think of it. This "newline" I am getting must be a > > result of windows just dropping my prompt to the next line. > > So I assumed it was there... Stupid me. I am used to Linux > > which does not do this in the shell. > > > > Ok then this brings me full circle. > > When I run this program on UNIX it makes an excel spread > > sheet that has little square strange characters at the end of > > every row in the last cell. I assumed they where new lines > > but I have ruled this out as I am not printing any new lines. > > Any idea on how to fix this? It works in windows but not on > > my sco box. > > > > #!/usr/bin/perl > > > > open IPO,('ipo.txt'); > > $count=2; > > $lineref=['PEL Supply Company - IPO Price List', > > ['Item Code','Description','List','Vendor']]; > > $addline = sub {$worksheet->write_row($count,0,$lineref)}; > > > > #setup excel spread sheet > > use Spreadsheet::WriteExcel; > > my $workbook = Spreadsheet::WriteExcel->new("ipo.xls"); > > $worksheet = $workbook->addworksheet(); > > $format1 = $workbook->addformat(); > > $format2 = $workbook->addformat(); > > $format3 = $workbook->addformat(); > > $format4 = $workbook->addformat(); > > > > #Format 1 (Header Row: Bold, BG Yellow, Bottom Border) > > $format1->set_bold(); $format1->set_bg_color('yellow'); > > $format1->set_bottom(); > > > > #Format 2 (List Column Right justified set to currency) > > $format2->set_align('right'); $format2->set_num_format(8); > > > > #Format 3 (List Column Header - Bold, Yel BG, Bottom Border, > > Right Justified) $format3->set_bold(); > > $format3->set_bg_color('yellow'); $format3->set_bottom(); > > $format3->set_align('right'); > > > > #Format 4 > > $format4->set_bold(); > > $format4->set_bg_color('yellow'); > > $format4->set_merge(); > > > > > > #Format Columns > > $worksheet->set_column(0,0, 25); > > $worksheet->set_column(1,1, 44); > > $worksheet->set_column(2,2, 10,$format2); > > $worksheet->set_column(3,3, 15); $worksheet->freeze_panes(2,0); > > > > #Write Header Row $worksheet->write(0,0,$lineref->[0],$format4); > > $worksheet->write_blank(0,1,$format4); > > $worksheet->write_blank(0,2,$format4); > > $worksheet->write_blank(0,3,$format4); > > > > $worksheet->write(1,0,$lineref->[1]->[0],$format1); # Item Code > > $worksheet->write(1,1,$lineref->[1]->[1],$format1); # Item > > Description > > $worksheet->write(1,2,$lineref->[1]->[2],$format3); # Item List > > $worksheet->write(1,3,$lineref->[1]->[3],$format1); # Vendor Code > > > > $lineref = \@line; > > > > while (<IPO>){ > > chomp; > > @line=split /\|/,$_; > > $line[2]=~s/ //g; > > &$addline; > > $count++; > > } > > > > > > > -----Original Message----- > > > From: Dan Muey [mailto:[EMAIL PROTECTED]] > > > Sent: Thursday, January 16, 2003 10:49 AM > > > To: Paul Kraus; Perl > > > Subject: RE: Where is the new line coming from. > > > > > > > > > > I am reading in a text file that has input similar to this. > > > > date|data|data|data\n > > > > > > > > I then read the file in and using a while loop I chomp > > off the new > > > > line. while (<IPO>){ > > > > chomp; > > > > @line=split /\|/,$_; > > > > $line[2]=~s/ //g; > > > > > > Do you mean $line[3] since that is the last one in the > array in the > > > example above? > > > date1|data2|data3|data4\n would become > > > 0 data1 > > > 1 data2 > > > 2 data3 > > > 3 data4\n > > > If so remove any newlines and space also : > > > $line[3] =~ s/\n|\r| //g; > > > Or use '\s' instead of ' ' for the space. > > > > > > Dan > > > > print "$_" foreach (@line); > > > > last; > > > > $count++; > > > > last if ($count == 7); > > > > } > > > > > > > > Here is the mystery. the output has a newline at the end > > of it. It > > > > should print "data data data data" and then my next > > prompt should be > > > > right here. instead it prints > > > > "data data data data > > > > "and my prompt is here. > > > > > > > > If I remove the initial chomp then I get a double space > > at the end. > > > > > > > > No matter what I print the last element gets a new line ????? > > > > > > > > Example if I > > > > print "$line[0] $line[1]"; > > > > then right at the end of the print statement is a new > > line and the > > > > output is identical to what I previously described. the last > > > > elements always inherits a new line. It driving me > > crazy!!! thanks > > > > in advance :) > > > > > > > > > > > > Paul Kraus > > > > Network Administrator > > > > PEL Supply Company > > > > 216.267.5775 Voice > > > > 216-267-6176 Fax > > > > www.pelsupply.com > > > > > > > > > > > > -- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] For > > > > additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]