Sorry, but the code you have posted isn't even legal perl.

P:\test>perl -c temp.pl Scalar value @lite[] better written as $lite[] at temp.pl line 7. Scalar value @list[] better written as $list[] at temp.pl line 37. syntax error at temp.pl line 7, near "@lite[" syntax error at temp.pl line 37, near "@list[" Global symbol "$i" requires explicit package name at temp.pl line 42. Global symbol "$maxlites" requires explicit package name at temp.pl li +ne 42. Global symbol "$i" requires explicit package name at temp.pl line 42. syntax error at temp.pl line 42, near "++;" Global symbol "$i" requires explicit package name at temp.pl line 44. Global symbol "$i" requires explicit package name at temp.pl line 46. Global symbol "$i" requires explicit package name at temp.pl line 46. Global symbol "$i" requires explicit package name at temp.pl line 47. Global symbol "$i" requires explicit package name at temp.pl line 54. Global symbol "$i" requires explicit package name at temp.pl line 54. Global symbol "$i" requires explicit package name at temp.pl line 55. Global symbol "$j" requires explicit package name at temp.pl line 66. Global symbol "$j" requires explicit package name at temp.pl line 66. Global symbol "$j" requires explicit package name at temp.pl line 66. Global symbol "$j" requires explicit package name at temp.pl line 67. Global symbol "$j" requires explicit package name at temp.pl line 68. Global symbol "$j" requires explicit package name at temp.pl line 69. Global symbol "$j" requires explicit package name at temp.pl line 71. Global symbol "$j" requires explicit package name at temp.pl line 72. Global symbol "$j" requires explicit package name at temp.pl line 73. Global symbol "$j" requires explicit package name at temp.pl line 73. Global symbol "$j" requires explicit package name at temp.pl line 74. Global symbol "$k" requires explicit package name at temp.pl line 77. Global symbol "$k" requires explicit package name at temp.pl line 77. Global symbol "$maxlites" requires explicit package name at temp.pl li +ne 77. Global symbol "$k" requires explicit package name at temp.pl line 77. Global symbol "$k" requires explicit package name at temp.pl line 81. Global symbol "$j" requires explicit package name at temp.pl line 88. Global symbol "$j" requires explicit package name at temp.pl line 88. Global symbol "$newx" requires explicit package name at temp.pl line 9 +1. Global symbol "$j" requires explicit package name at temp.pl line 91. Global symbol "$newy" requires explicit package name at temp.pl line 9 +2. Global symbol "$j" requires explicit package name at temp.pl line 92. Global symbol "$newx" requires explicit package name at temp.pl line 9 +4. Global symbol "$newy" requires explicit package name at temp.pl line 9 +4. Global symbol "$newy" requires explicit package name at temp.pl line 9 +5. Global symbol "$newx" requires explicit package name at temp.pl line 9 +6. Global symbol "$j" requires explicit package name at temp.pl line 96. Global symbol "$j" requires explicit package name at temp.pl line 96. Global symbol "$j" requires explicit package name at temp.pl line 97. Global symbol "$newy" requires explicit package name at temp.pl line 9 +7. Global symbol "$j" requires explicit package name at temp.pl line 97. Global symbol "$newx" requires explicit package name at temp.pl line 9 +8. Global symbol "$j" requires explicit package name at temp.pl line 98. temp.pl had compilation errors.

It looks like you have attempted a brute force conversion of a C program, but you don't have enough knowledge of Perl syntax to make the conversion.

Taking on (or being given) a complex, near impossible task to program, in language you do not understand enough to recognise that

...or die ("could not open file. &!" );

should be ...die ("could not open file.$!" );

or my @lite[][]; just isn't legal perl syntax.

means that you are trying to run before you can walk.

You need to start with smaller problems and learn the syntax first.

Attempting to leap in and asking for help to solve one of the toughest problems in computing, when you do not yet know the basic syntax is not going to get you very far. Even if someone was interested enough to take their time to re-write your program and make it work, you would have learned nothing.


Examine what is said, not who speaks.
"Efficiency is intelligent laziness." -David Dunham
"Think for yourself!" - Abigail
Timing (and a little luck) are everything!


In reply to Re: Help with attempting to solve cutting stock problem (knapsack) by BrowserUk
in thread Help with attempting to solve cutting stock problem (knapsack) by stu96art

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.