For elements of a list which are odd
$_%2 and print for 0..10;
or
$_&1 and print for 0..10;
Or one may want elements at odd indices where that 0..10 stands for array indices
my @ary = 0..10;
$_&1 and print $ary[$_] for 0..$#ary;
The syntax $#ary is for the index of the last element of array @ary.
The point being that Perl's and short-circuits so if the expression on its left-hand-side isn't true then what is on its right-hand-side doesn't run. (Same with or -- if the LHS is true the RHS isn't evaluated.)
If you indeed need array elements at odd indices can also do
my @ary = 0..10;
print for @ary[grep { $_&1 } 0..$#ary];
All above print 13579 (no linefeed). In a one-liner, to enter and run on the command-line
perl -we'$_%2 and print for 0..10'
If you actually need to print each number on its own line, judged by a posted comment, replace print with say, like
$_%2 and say for 0..$#ary;
for odd array elements from array @ary, or
$_&1 and say $ary[$_] for 0..$#ary;
for array elements at odd indices.
Add use feature 'say'; to the beginning of the program (unless it is enabled already by other loaded tools/libraries).