Summary: Advice against using $input for a variable name.
Can I use a variable named $input to hold input from the Read-Host cmdlet?
$input is an automatic variable that is used for script blocks in the middle of a pipeline.
As such, it would be a very poor choice.
Call the variable something like $userInput if you wish; but please do not call it $input!