Thanks for the reassurance and encouragement. I knew there was a positive group of MacPerlers out there somewhere. Thanks to the tremendous amount of information and encouragement. Even though he had some "additional advice", thanks to Ronald for helping as well. I am studying the ".t" examples. This is really where I want to be eventually. I envy Kevin Reid. He has the knowledge I am on a crusade to aquire. So what I am doing is writing basic level programs and studying in parallel on the toolbox. I have a mission. It is to install a Unix version of Perl on my Sun servers, write database access routines to access Oracle and then be able to use a custom MacPerl application to read the Oracle data via Proxy. I'll be back for sure. Thanks a lot for everything. Robert Pollard cetasix@pop.erols.com wrote: > Robert, > > Concerning Ronald, what an ego! I too am learning and I do not appreciate > an ego maniac bashing me for not knowing what he did. For him to be so > unpleasant suggests that he is not very happy with himself or he is a world > class jerk. I like how you dealt with him. Very diplomatically. > > Anyways, I like your question/issue and it helped me as well. I think > you'll be a good programmer if you stick it in there. Anyways, keep > plugging away. > > alan :) > > >Ronald J Kimball wrote: > > > >> On Thu, Jun 24, 1999 at 09:48:04AM -0500, Robert Pollard wrote: > >> > Hello everyone, > >> > > >> > I have a snippet of code I would like to ask questions about. I am a > >> > newbie so I won't even raise your brainwave level far above a coma. > >> > I did this little bit of code to check the contents of a file for any > >> > strange characters. The file was causing a freeze and I thought there > >> > may be something odd in it. It turned out there wasn't but I have some > >> > questions about it. > >> > > >> > open(SOURCE, '<Robert:Desktop Folder:Addresses') or die; > >> > open(DEST, '>Robert:Desktop Folder:Addresses.clean') or die; > >> > 1) Does the open command always read the whole file in. > >> > >> The open() function does not read any of the file in. It just creates a > >> filehandle that you can use to read the file in later. (Or write to, or > >> whatever, as appropriate.) > >> > >> > This is an > >> > interesting syntax because what this did was to put the whole contents > >> > of a file line by line into an array. What if my text were very long > >> > paragraphs and exceeded the maximum character limit of the variable for > >> > each element? > >> > @line = <SOURCE>; > >> > >> I'm not sure what would happen if you had a line that was longer than the > >> maximum character limit. I believe that limit is somewhere between 255 > >> megabytes and 4095 megabytes for a single scalar value, at least on the > > > >This is very good > > > >> > >> system I did a bit of testing on just now - at the upper end, the scalar > >> came back empty. Anyway, it's more likely MacPerl will run out of memory > >> before you manage to fill up a scalar variable. > >> > >> > 2) Why do I need to chomp. The program ran fine and put everything > >> > aout like it was suppose to. I believe this is for stripping the CRs at > >> > the end of the line? > >> > #chomp($line); > >> > >> Yes, that is what it is for. If you're not _sure_ what chomp() does, why > >> didn't you read the documentation??? > > > >Because I couldn't get to the documentation to double check what I thought I > >had read. I have the book on order for over 2 weeks with no indicator of when > >I will see it and the online version wasn't available. I believe the server > >was down. I checked this morning and it still wasn't available. I apologize > >for not being able to remember things that I glance at, but there is so much > >to take in. > > > >> > >> > >> If you don't want to remove the newlines, you don't need to chomp(). > >> > >> > print "@line\n"; > >> > >> Are you sure this is what you want to do? This prints with a space between > >> each array element, and adds an extra newline at the end. You probably > >> meant: > >> print @line; > >> > >> Read the documentation on quote operators and the $" variable. > >> > >> > foreach $line (@line) { > >> > ($Name, $Phone, $Address, $Type) = split(/\t/, $line); # This cool. > >> > I would use this before I would allow the split to assign each line > >> > # to different elements in the array. In the importation of records, > >> > this seems to be the best way to write to arrays in row/column fashion. > >> > > >> > 3) Here I didn't have to use the angle brackets around the > >> > filehandle. If I did it seemed to refer to the whole file. Without > >> > them, it allows whatever you want to put out. As in this case I was > >> > able to put out a whole line at a time. > >> > print DEST $line; > >> > >> Angle brackets around a filehandle are the _input_ operator. If you're > >> trying to output to a filehandle, you should not use the input operator on > >> it. Once again, why haven't you read the documentation??? > > > >I'm sorry but this tidbit didn't jump out at me when I went over the > >documentation. I went back and looked for it under "Builtin functions" under > >"open" and still didn't see this. Maybe they assume you can figure it out. > > > >> > >> > >> > print("The name is $Name.\n"); > >> > # This is where I convert each character to the ascii representation. > >> > print("The ascii representation is:\n"); > >> > for ($i=1;$i <= length($line);$i++) { > >> > $num = ord(substr($line, $i, 1)); > >> > print("$num,"); > >> > if ($num > 127) { > >> > print ("\n\nW A R N I N I N G -- ASCII value exceeds 127\n\n"); > >> > } > >> > } > >> > print("\n"); > >> > } > >> > close(SOURCE); > >> > close(DEST); > >> > 4) Could you guys give me any tips/hints on code optimization? > >> > > >> > >> Tip #1. Read the documentation. > > > >I have and am continuing to. You may be one of those genius types that can do > >things like look at hexadecimal code and know exactly what it does. Me, it > >takes time. > > > >> > >> > >> Tip #2. Try to program in Perl, not in C. The for loop above is how you > >> would solve this problem in C. A more Perlish way would be: > >> > >> foreach (split //, $line) { > >> print $num = ord $_; > > > >I have looked for "$_" throughout the documentation in both the MacPerl: Power > >and Ease and in the documentation. I can't find it anywhere. I wish I could > >do a keyword search but I can't and it takes time to find these things. > > > >Thanks for the Perlish way of doing this. I am having a hard time adjusting > >to Perl. This is what I was hoping someone would show me. I hope you > >remember in the first part of this request I said I was a newbie. If I had as > >much time in Perl development as you I would understand your frustration in my > >basic level questions. Everybody has to start somewhere. I have been > >programming in 4th Dimension, SQL and a little C for so long, Perl is really > >strange to me. > >I can only offer you 2 options: 1) Please be patient with me or 2) if I annoy > >you then don't respond to any of my requests. > > > >Still and yet, thank you for taking the time. > > > >Robert Pollard > > > >> > >> $num > 127 and warn "WARNING -- ASCII value exceeds 127.\n"; > >> } > >> > >> Ronald > > > > > >===== Want to unsubscribe from this list? > >===== Send mail with body "unsubscribe" to macperl-request@macperl.org ===== Want to unsubscribe from this list? ===== Send mail with body "unsubscribe" to macperl-request@macperl.org