Perl: Use of uninitiated value warning

Hi I am brand new to perl and I wrote following code.

#!/usr/bin/perl

use warnings;
 
 while (<>) {

 @arr1 = split(//);

 $i = 0;

 foreach (@arr1) {

$_ = $arr1[$i++];

@arr2 = ($arr1[$i],$arr1[$i+1],$arr1[$i+2]);

print "@arr2\n";
  
};}

But I am getting following error.

Use of uninitialized value $arr2[2] in join or string at Hello line 18, <> line 1.
h 
 
Use of uninitialized value $arr2[1] in join or string at Hello line 18, <> line 1.
Use of uninitialized value $arr2[2] in join or string at Hello line 18, <> line 1.

  
Use of uninitialized value $arr2[0] in join or string at Hello line 18, <> line 1.
Use of uninitialized value $arr2[1] in join or string at Hello line 18, <> line 1.
Use of uninitialized value $arr2[2] in join or string at Hello line 18, <> line 1.

whats wrong with my code?

thank you.

A logic. Try to write what you want to do in plain (but "algorithmic") English.