in reply to use strict Question?

Duh. See OP's clarification and SirClive's answer, below.

Perhaps because there's no error to throw?

Line 6 and the operations in your narrative assign to $a, $b, $c the result of the simple multiplication; did you expect something different?

Replies are listed 'Best First'.
Re^2: use strict Question?
by SirClive (Scribe) on Dec 07, 2009 at 12:15 UTC
    I think the original poster is referring to the fact that they didn't need my $a or my $b but they did need my $c my $d , etc etc The reason for this is that $a and $b are global variables which are used by the sort function. See perldoc -f sort for more --- start quote ---

    If the subroutine's prototype is "($$)", the elements to be compared are passed by reference in @_, as for a normal subroutine. This is slower than unprototyped subroutines, where the elements to be compared are passed into the subroutine as the package global variables $a and $b (see example below). Note that in the latter case, it is usually counter-productive to declare $a and $b as lexicals.

    -- end quote ---
      Thanks SirClive!
Re^2: use strict Question?
by Anonymous Monk on Dec 07, 2009 at 12:14 UTC
    $c = $x * $y;throws error. Global symbol "$c" requires explicit package name But ,when i use $a = $x * $y perl doesn't throwing the error. 1.I used "use strict" in the program. 1. I declared two variables $x and $y as my. 2. But i didnt declared $a or $b as my..I expected Global symbol "$a" requires explicit package name for $a and $b.But it didnt. 3. When i use $c ,it throw error. I am curious to know why while $a and $b perl not throwing the error!
      $a and $b are special package variables used by sort(), so they don't have to be declared even if you are using strict. $c isn't a special variable; hence it must be declared, and that's why it throws an error. See perlvar for more info.