I really almost never have cash on me anymore so my soul is unburdened. I sometimes do charitable acts but it rarely involves giving money to people on street corners. That's just a 9 to 5 for a bunch of them.
I always carry cash, but it's in unreasonable denominations (usually $100 and a $50), and it's only there "just in case" (i.e. lost my phone and need a cab home, and my credit cards aren't working). There's no way I'm giving $50 to a homeless person, I'd rather donate to a local shelter instead.
That said, if I have the time, I'll offer to take them to get some fast food. They can tell me about their life story, and I know they can't use my money to buy drugs.