http://www.perlmonks.org?node_id=757094


in reply to Seeing Perl in a new light

Welcome to the power of the "sub"!

My advice: take it slow. Convert a very small section of your site. Get comfortable with the process of converting and the kind of subroutines that you will need. See if you notice some patterns in how you go about converting things. Apply what you learn to the next batch of pages. You will surely learn as you go... and there are many here to help you.

Now would also be a very good time to learn about version control. In any case do lots of back-ups. Mistakes are a natural part of learning and you don't want to break your site while you are trying to make it easier to manage and expand.

Best of luck, beth

Replies are listed 'Best First'.
Re^2: Seeing Perl in a new light
by Lady_Aleena (Priest) on Apr 12, 2009 at 13:10 UTC

    My dearest ELISHEVA, you put me on the path by showing me the power of the sub! Without you, I would not have had this revelation. I have written several since, though they are mostly simple things that are not much to look at.

    I would like to start writing the shell, especially the navigation part. That is the most daunting of tasks. I will be uploading this to my perlmonk.org account not my xecu.net account. That will give me the freedom to start from scratch with things. Write the shell script, get comfortable with it, then start on the massive reorganization and rewrite of my site. With this new way of thinking, there will be a new way of doing. That makes me equals amounts eager and anxious. Weird isn't it?

    Have a nice day!

    Lady Aleena
      you put me on the path by showing me the power of the sub

      Of course you have heard the old Navy joke, that "the best marine is a submarine". :-)


      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku
Re^2: Seeing Perl in a new light
by Lady_Aleena (Priest) on Apr 13, 2009 at 05:39 UTC
    ELISHEVA...You mentioned version control, I am not exactly sure of what you mean by that. gwadej also suggested it. Could you please tell me what exactly that entails?
    Have a nice day!
    Lady Aleena
      Version Control lets you do two things:
      1. Keep all (old) versions of your files around without cluttering up the structure on your disk.
      2. Allows more than one programmer work on the same project without getting in each other's way (by overwriting, deleting, changing, moving, ... files).
      A nice explanation is on Visual Guide to Version Control. Personally I use Subversion (which plays very nice with Windows and is integrated into my IDE Komodo), but if you got a lot of people working on the same project GIT comes highly recommended nowadays. Perl5 has recently moved to GIT.

      CountZero

      A program should be light and agile, its subroutines connected like a string of pearls. The spirit and intent of the program should be retained throughout. There should be neither too little or too much, neither needless loops nor useless variables, neither lack of structure nor overwhelming rigidity." - The Tao of Programming, 4.1 - Geoffrey James

        For someone starting out with version control I would recommend using RCS on some small projects to get the basics down. Then using Subversion or one of the other more complex and project oriented version control systems will be a lot easier.

        Elda Taluta; Sarks Sark; Ark Arks

      This is going to be another piece you will think is unnecessary in the beginning. Years ago, I saw version control described as a time machine for your development.

      A version control system allows you to go back to earlier versions of your code or compare your two different version of code. This is most useful while things are changing.

      For example, imagine that you've got a mostly stable version of your code in place. Now imagine you have a great idea that will only take a few minutes to code up.... 4 hours later, nothing is working and you are wishing you could go back to where you were 4 hours ago. Version control to the rescue.

      You could do the same thing by zipping up your entire site any time you feel it is worth keeping.

      Version control can also help with seeing what changes you have made (to help you find where you went wrong). Say you want to compare what you did 2 hours ago with what you have now.

      The point of enlightenment for me was when I realized that I could use version control proactively. Make sure everything is under version control. Try something experimental that might break everything. If it works, keep it. If it doesn't, toss it. No real loss.

      Of course, there are better and more advanced ways to make use of version control, but these would be helpful right away.

      G. Wade
      A version control system is a stand-alone, fundamental component of a configuration management system that is responsible for the management of individual versions of controlled files/items, providing the ability to manage versions of controlled item versions, typically involving the...
      • Management i.e. creation, update & conditional deletion of item versions
      • Support of version branches
      • Support for the merging of item versions
      • Management i.e. creation, update & conditional deletion of controlled item version labels
      Note that the merging of item versions is specific to software configuration control/management systems, the facility is neither required, nor indeed present, in hardware control/management systems.

      Note also that the management of item version labels provides the basis for baseline management - in which aggregates of items (& their versions) are managed as enitities in their own right.

      I would take issue with CountZero in as much as ... Allows more than one programmer work on the same project ... is not necessarily provided by a version control system, it is known (in the trade) as co-ordination of concurrent development and is a fundamental requirement of any configuration management system.

      A user level that continues to overstate my experience :-))